Linux下SSH的免密登陆以及别名登陆
之前配置了很多的Linux下的免密登陆,今天回顾总结配置的相关步骤。
-
SSH免密登陆的原理
下图很好的说明了SSH的原理,非常感谢在网上分享的前人。
步骤
Step-1 首先创建本机的公钥和私钥,使用命令ssh-******。
默认生成的公钥名为id_rsa.pub ,私钥名为id_rsa。当然也可以通过参数 -t 来指定名称,如:ssh-****** -t rsa。
执行命令后得到下面的图示,
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
以上两个路径为公钥和私钥的存放路径。
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
Step-3 修改目标机器上的权限
修改目标机器上~/.ssh/authorized_keys 文件的权限:
chmod 600 ~/.ssh/authorized_keys
此时如果机器B没有~/.ssh 目录需要手动创建
修改前的权限如下:
修改后的权限如下:
Step-4 免登录测试成功
转载于:https://blog.51cto.com/harrsion/2174239