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

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

  1. SSH免密登陆的原理

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

1.jpg

  1. 步骤

Step-1 首先创建本机的公钥和私钥,使用命令ssh-keygen。
默认生成的公钥名为id_rsa.pub ,私钥名为id_rsa。当然也可以通过参数 -t 来指定名称,如:ssh-keygen -t rsa。
图片.png

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

图片.png

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

图片.png

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 username@host:/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 username@host
 //执行后输入机器B username用户的密码,效果和方法1一样
使用ssh-copy-id <主机地址> 来将公钥添加到目的主机,这里可以使用-i <公钥地址> 来指定使用本机的那个公钥,如:-i ~/.ssh/id_rsa.pub

图片.png

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

图片.png

修改后的权限如下:

图片.png

Step-4 免登录测试成功

图片.png

猜你喜欢

转载自blog.51cto.com/harrsion/2174239