zoukankan      html  css  js  c++  java
  • SSH

    SSH连接原理及ssh-key讲解

    1.知识小结

    • SSH是安全的加密协议,用于远程连接Linux服务器。
    • SSH默认端口是22,安全协议版本SSH2,除了2之外还有SSH1(有漏洞)
    • SSH服务端主要包含两个服务功能SSH远程连接和SFTP服务。
    • Linux SSH 客户端包含ssh远程连接命令,以及远程拷贝scp命令等。

    2输密模式

    2.1双方安装这个软件包

    image_1ck2a0merpf49np1s86fqcf7n9.png-6.2kB

    image_1ck2a284p1buts1v1qv1hft10crm.png-2.1kB

    2.2查看ssh命令

    image_1ck2afbnhqneaue12is1rg2faq1g.png-8.2kB

    2.3实验如下所示

    2.3.1实验(一)

    image_1ck2ao8vl1i505vb1kq1u601alu1t.png-27.4kB

    2.3.2实验(二)

    已知对方有普通用户yunjisuan

    image_1ck2at292quj79q124l1f3t15tm2a.png-3.1kB

    image_1ck2b1s19fnj12ip1mce1es04q72n.png-9.5kB

    2.3.3退出对方账户

    image_1ck2b4rtn58scbn1k7h1ep81mop34.png-7.1kB

    3无密模式

    3.1服务端创建密钥

    image_1ck2bpk6m1bim1ds5q8r145r0h41.png-30.7kB

    命令说明:

    • 创建密钥对时,要你输入的密码,为进行密钥对验证时输入的密码(和linux角色登录的密码完全没有关系);
    • 如果我们要进行的是SSH免密码连接,那么这里密码为空跳过即可。
    • 如果在这里你输入了密码,那么进行SSH密钥对匹配连接的时候,就需要输入这个密码了。(此密码为独立密码)
    • 用户家目录下的.ssh隐藏目录下会生成:id_rsa id_rsa.pub 两个文件。id_rsa是用户的私钥;id_rsa.pub则是公钥

    3.2 将公钥id_rsa.pub文件复制到另外一台服务器(客户端)的用户家目录下的.ssh目录下。如果对方没有.sh这个目录,就自己创建一个,但切记要把目录权限改成700

    image_1ck2c4up417f914he13pkbns11gr4e.png-45.6kB

    3.3将公钥id_rsa.pub文件复制到另外一台服务器(客户端)的用户家目录下的.ssh目录下。

    image_1ck429e8i16bc1pvk1krq1g59vpq9.png-6.5kB

    3.4客户端检查

    image_1ck2cgktporm11crb351lh7b658.png-2.5kB

    3.5将拷贝过去的id_rsa.pub文件里的内容追加到~/.ssh/authorized_keys文件里(客户端)

    image_1ck41t2181tig61g1i33ucu1sri5a.png-5.9kB

    3.6由服务端访问服务端实验如下

    image_1ck41r1krli41efo5lp1357pjf4t.png-8.5kB

    3.7 SSH基于密钥的安全认证总结

    • 如果我们要进行免密码的SSH连接,那么在创建密钥对的时候不输入任何密码就可以了。
    • SSH基于密钥的安全认证的本质其实就是将密钥对中的公钥里的内容拷贝到对方服务器的用户家目录下的.ssh目录里的authorized_keys文件里。
    • 你想要和对方服务器的哪个用户进行密钥对认证,那么你就要把公钥拷到对方该用户的家目录下的.ssh目录里的authorized_keys文件里(如果是想和普通用户进行密钥对登录,需要拷贝到/home目录下的该用户家目录下。)
    • ssh-keygen -t参数可以指定密钥对的加密类型。如果不指定默认rsa加密

    4.非交互式创建密钥对

    4.1非交互式一条命令创建密钥对

    image_1ck40rkiaacksnrmto1m5h1odm9.png-15.3kB

    image_1ck42fc1t1n22elc1g7fk6lt88m.png-5kB

    4.2查看服务端.ssh目录下文件

    image_1ck40vfvq1prc10981ta8vn51bie1m.png-2.9kB

    4.3通过ssh-copy-id进行公钥的自动分发

    image_1ck411gevaur5bha4v1t1nipr23.png-13.9kB

    4.4实验如下

    image_1ck4158u051pljc1bvn112m14at3g.png-8.5kB

    5.开始安装sshpass免交互工具并进行SSH-key的批量分发

    5.1下载epel源并更新云yum仓库(参照云yum)并下载软件包sshpass

    image_1ck44894v1gi4hpc1kiq4i014au13.png-2.1kB

    image_1ck448t1d30js991m7g1ti01kcr1g.png-2.5kB

    5.2免交互创建密钥对

    image_1ck44cajm1o901mpg1kns4o3dqm1t.png-16kB

    5.3免交户方式分发公钥

    image_1ck44mfgo1ujp5i0l399tjbf2a.png-13.4kB

    5.4检查推送结果

    image_1ck44nt4ues13jisaq16oj1sqo2n.png-2.3kB

    5.5实验如下

    image_1ck44s3ot1nqd12uo1ald1ime1rf534.png-8.4kB

    6.章节重点小结

    • ssh为加密的远程连接协议。相关软件有openssh,openssl
    • 默认端口22
    • 协议版本1.x和2.x,2.x更安全。了解SSH协议原理
    • ssh客户端包含ssh,scp,sftp命令
    • ssh安全验证方式:口令和密钥,这两种都是基于口令的,SSH密钥登录的原理。
    • ssh服务安全优化,修改默认端口22,禁止root远程连接,禁止dns,SSH只监听内网IP
    • ssh密钥对,公钥在服务器端,比如就是锁头,私钥在客户端。
  • 相关阅读:
    黑白棋_lduoj_dfs深搜
    lduoj_2021年初寒假训练第41场
    Git学习day02
    Git学习day01
    python学习之urllib的使用
    SQL语句之授权与收回
    PHP学习之有问题找谁
    PHP学习之没有权限修改hosts文件
    PHP学习之创建本地站点
    python学习之常见错误
  • 原文地址:https://www.cnblogs.com/ywb123/p/11132125.html
Copyright © 2011-2022 走看看