比如有两条虚拟机node0,node1,现在需要从node0免密登录node1,设置步骤如下:
1. 用个人账户登录机器node0(不要用root帐户),生成公钥密钥对:
ssh-keygen -t rsa 命令,一路enter即可,在目录/home/jimmy/.ssh目录下生成 私钥id_rsa/公钥id_rsa.pub
2. 登录机器node1,在个人账户目录下创建目录.ssh
cd /home/jimmy
mkdir .ssh
sudo chmod 700 .ssh (权限700)
3. 将机器node0的公钥文件id_rsa 传送到机器node1
scp /home/jimmy/.ssh/id_rsa.pub node1:/home/jimmy/.ssh
3.1第一次连接机器A,会提示node1(192.168.2.171) can't be established, 原因是在known_hosts文件中没有访问记录(该文件也是第一次访问自动创建的)
3.2第一次连接机器A,会提示输入机器A的登录密码
4. 登录机器node1,然后将传送过来的公钥文件内容复制到authorized_keys 文件中
cat id_rsa.pub >> authorized_keys
sudo chmod 644 authorized_keys(权限很重要)
rm -f id_rsa.pub (保险起见,删除传送过来的公钥文件)
5. 修改node1的ssh配置, 保证一下三项配置值
sudo vi /etc/ssh/sshd_config
6. ok,现在回到机器node0, ssh node1就可以免密登录了;反过来,如果希望从机器node1免密登录node0,道理一样,将公钥传送到node0,配置下即可