基于SSH的安全远程登录

#基于SSH的安全远程登录
##1.SSH的用户远程登录认证方式

  • 第一种是用户密码远程登录

    1. 客户端发起ssh请求,服务器会把自己的公钥发送给用户
    2. 用户会根据服务器发来的公钥对密码进行加密
    3. 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功
  • 第二种是基于密钥key远程登录

    1. 首先在客户端生成一对密钥(ssh-keygen)
    2. 并将客户端的公钥ssh-copy-id 拷贝到服务端
    3. 当客户端再次发送一个连接请求,包括ip、用户名
    4. 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:13579
    5. 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端
    6. 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端
    7. 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录

2.SSH基于用户密码远程登录实现过程

  1. 当用户使用ssh客户端第一次远程连接ssh服务器的时候会获取ssh服务器的公钥,当成功连接时,会在当前用户家目录下创建一个.ssh的隐藏文件夹并创建名叫known_hosts文件,里面保存着远程连接的SSH服务器的公钥。

    • 创建的.ssh目录路径
      [root@centos7 .ssh]# pwd
      /root/.ssh
    • 生成的公钥文件
    [root@centos7 .ssh]# ls
    known_hosts
    • 第一次连接获取的MD5数值就是通过公钥加密而获得
      [root@centos7 .ssh]# ssh root@192.168.32.129
      The authenticity of host '192.168.32.129 (192.168.32.129)' can't be established.
      RSA key fingerprint is SHA256:Z9E+n2nzRstV84EoUduaYhIs1hbq2Upo5jjPzvj8xxY.
      RSA key fingerprint is MD5:ff:6a:95:9a:31:d3:e2:52:6d:ac:54:d9:b5:af:33:57.
  2. 通过以下步骤我们可以算出MD5的值。

    • 目标机器/etc/ssh/目录下存放着ssh_host_rsa_key.pub公钥文件和ssh_host_rsa_key私钥文件

      [root@centos6 ssh]# ls 
      moduli      sshd_config       ssh_host_dsa_key.pub  ssh_host_key.pub  ssh_host_rsa_key.pub ssh_config  ssh_host_dsa_key  ssh_host_key          ssh_host_rsa_key
    • ssh_host_rsa_key 文件内的公钥提取出来base64进行解密然后将结果输出到文件内

      [root@centos6 ssh]# base64 -d ssh_host_rsa_key.pub.txt> key.pub.txt
    • 最后通过md5sum 计算出上面显示的MD5值来,当下次连接时不能匹配将拒绝连接
[root@centos6 ssh]# md5sum key.pub.txt 
ff6a959a31d3e2526dac54d9b5af3357  key.pub.txt

3. 基于密钥key的安全免密登录实现过程

  1. 首先生成密钥对,生成的密钥对会默认放在当前用户的家目录的.ssh/ 目录下

    [root@centos7 ~]# ssh-keygen                                     #生成私钥,加上-t可以指定算法
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa):  #可以指定存放目录
    Enter passphrase (empty for no passphrase):             #设置私钥密码
    Enter same passphrase again: 
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:9jKgeXGAQu1G77IXfYd0HEwNWRxi9L50nsuf63wF+Nk root@centos7.zk
    The key's randomart image is:
    +---[RSA 2048]----+
    |  ..       +**o. ********|
    | .  o.     .+oo  |
    |  .o...    . o.  |
    |   .o ..  . +..  |
    |   . .o.S. o .o+.|
    |    .oo=..o ..o+E|
    |    oo..o...  ..o|
    |    ...  o    o +|
    |     .        .B=|
    +----[SHA256]-----+
  2. 生成密钥对后将公钥放入要连接的主机服务器上,公钥默认存放在要连接的用户家目录.sh/authorized_keys文件里
    [root@centos7 .ssh]# ssh-copy-id -i id_rsa.pub root@192.168.32.129
  3. 以上步骤做完后就可以实现基于密钥key的安全免密登录
    [root@centos7 .ssh]# ssh root@192.168.32.129
    Last login: Thu Apr 18 10:58:05 2019 from 192.168.32.128

转载于:https://blog.51cto.com/14292697/2380639

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值