ssh免密码登录及原理

SSH免密码登录及原理


场景

有两台机器A(192.168.33.100),B(192.168.33.110),A为客户端,B为服务端,想要在A上通过ssh免密码登录到B

  1. 在A机器上生成公钥/私钥对

    [gq@A ~]$ ssh-keygen -t rsa

    回车、回车、回车一直回车就好!

    /home/gq 下生成 .ssh目录,.ssh下有id_rsa和id_rsa.pub

  2. 将A机器上的id_rsa.pub复制到B机器上

    [gq@A ~]$ scp .ssh/id_rsa.pub gq@192.168.33.110:/home/gq/id_rsa.pub
    gq@192.168.33.110's password:
    id_rsa.pub                                    100%  231    0.4KB/s   00:00
  3. 再将从A机复制的id_rsa.pub添加到B机的.ssh/authorzied_keys文件里,并且authorized_keys的权限要600

    [gq@B ~]$ cat id_rsa.pub >> .ssh/authorized_keys
    [gq@B ~]$ chmod 600 .ssh/authorized_keys
  4. A机登录B机

    [gq@A ~]$ ssh 192.168.1.110
    The authenticity of host '192.168.33.110 (192.168.33.110)' can't be established.
    RSA key fingerprint is 00:a6:a8:87:eb:c7:40:10:39:cc:a0:eb:50:d9:6a:5b.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '192.168.33.110' (RSA) to the list of known hosts.
    Last login: Mon Jul 1 16:26:35 2018 from gq
    [gq@B ~]$
    基于密钥的验证

    img

    这种验证的前提是客户端需要生成一对密钥,将公钥放到需访问的远程服务器。这种验证比上一种的好处是,不能仿冒真正的服务器,因为要仿冒必须拿到客户端生成的公钥。缺点就是验证等待过程稍长些。

    免密码登录原理

    https://img-blog.csdn.net/20160319193556260

    图解,server A免登录到server B:

    1.在A上生成公钥私钥。

    2.将公钥拷贝给server B,要重命名成authorized_keys(从英文名就知道含义了)

    3.Server A向Server B发送一个连接请求。

    4.Server B得到Server A的信息后,在authorized_key中查找,如果有相应的用户名和IP,则随机生成一个字符串,并用Server A的公钥加密,发送给Server A。

    5.Server A得到Server B发来的消息后,使用私钥进行解密,然后将解密后的字符串发送给Server B。Server B进行和生成的对比,如果一致,则允许免登录。

    总之:A要免密码登录到B,B首先要拥有A的公钥,然后B要做一次加密验证。对于非对称加密,公钥加密的密文不能公钥解开,只能私钥解开。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值