之前配置了很多的Linux下的免密登陆,今天回顾总结配置的相关步骤。

  1. SSH免密登陆的原理

    下图很好的说明了SSH的原理,非常感谢在网上分享的前人。

Linux下SSH的免密登陆以及别名登陆

  1. 步骤

Step-1 首先创建本机的公钥和私钥,使用命令ssh-******。
默认生成的公钥名为id_rsa.pub ,私钥名为id_rsa。当然也可以通过参数 -t 来指定名称,如:ssh-****** -t rsa。
Linux下SSH的免密登陆以及别名登陆

执行命令后得到下面的图示,

Linux下SSH的免密登陆以及别名登陆

Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
以上两个路径为公钥和私钥的存放路径。

Linux下SSH的免密登陆以及别名登陆

id_rsa : 生成的私钥文件
 id_rsa.pub : 生成的公钥文件
 know_hosts : 已知的主机公钥清单
 如果希望ssh公钥生效需满足至少下面两个条件:
     1) .ssh目录的权限必须是700
     2) .ssh/authorized_keys文件权限必须是600

Step-2 把源机器上的公钥(id_rsa.pub)复制到目的机器的 ~/.ssh/authorized_keys 文件里
一般来说有两种办法
方法1:
 scp ~/.ssh/id_rsa.pub [email protected]:/home/B/id_rsa.pub
 //此时scp需要输入 登录机器 username用户的密码
 //然后进入机器B内把 /home/B/id_rsa.pub 文件内容加写进 ~/.ssh/authorized_keys 文件:
 cat /home/B/id_rsa.pub >/home/B/.ssh/authorized_keys
方法2:
//在源机器中使用 ssh-copy-id 把公钥加写到目的机器的 ~/.ssh/authorized_keys 文件
 ssh-copy-id [email protected]
 //执行后输入机器B username用户的密码,效果和方法1一样
使用ssh-copy-id <主机地址> 来将公钥添加到目的主机,这里可以使用-i <公钥地址> 来指定使用本机的那个公钥,如:-i ~/.ssh/id_rsa.pub

Linux下SSH的免密登陆以及别名登陆

Step-3 修改目标机器上的权限
修改目标机器上~/.ssh/authorized_keys 文件的权限:
 chmod 600 ~/.ssh/authorized_keys
 此时如果机器B没有~/.ssh 目录需要手动创建
修改前的权限如下:

Linux下SSH的免密登陆以及别名登陆

修改后的权限如下:

Linux下SSH的免密登陆以及别名登陆

Step-4 免登录测试成功

Linux下SSH的免密登陆以及别名登陆