在网上有很多讲解ssh无密码登录的博客,但是大部分都是讲解单机的,多台机器虽然原理相似,但是不免出现单机可以,但是多台机器实现不了ssh无密码登录,这边文章结合实例讲解,希望能帮到大家
环境背景:
(1)有两台服务器,而且已经安装好ssh服务
(2)ip分别是192.168.148.135和192.168.148.136.下面就用135和136代替这两台机器
1.首先实现135和136机器的单机ssh免密码登录。
上图可以看到135和136ssh登录都需要密码。
首先我们在135和136机器上操作如下
然后我们就会在机器的 cd ~/.ssh 下面看到id_rsa id_rsa.pub两个文件
然后执行cat id_rsa.pub >> authorized_keys,按照以上操作应该实现了本机的ssh无密码登录。但是看下图
ssh无密码登录本机失败。
一般有两个原因:
检查.ssh目录权限是否是700 以及 authorized_keys权限是否644,如果不是修改权限。
我这里的权限,明显不是644,修改chmod 644 authorized_keys
可以看到,修改权限后,登录成功。
2.实现135和136相互无密码登录
在这里我们可能想到把id_rsa.pub复制到远程服务器,然后追加到authroized_keys中,这样做当然可以,但是我们这里提供一个更好的办法
ssh-copy-id
解释的很清楚,就是用来干ssh公钥追加到authorized_keys中的。
基本用法 ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
如果服务的ssh端口不是22,则使用ssh-copy-id -i ~/.ssh/id_rsa.pub -p port user@server
然后我们执行ssh 192.168.148.135可以实现无密码登录
同样把135上面的id_rsa.pub复制到136上,可以实现135到136的无密码登录,谢谢!