1.安装ssh. sudo apt-get install ssh. 安装完成后会在~目录(当前用户主目录,即这里的/home/xuhui)下产生一个隐藏文件夹.ssh(ls -a 可以查看隐藏文件)。如果没有这个文件,自己新建即可(mkdir .ssh).
2.进入.ssh目录下面,在每台机器上执行:ssh-keygen -t rsa 之后一路回车,产生密钥;
3。完成第二步后会产生两个文件:
id-rsa #私钥
id-rsa.pub #公钥
4.在第一台机器的目录.ssh下执行命令,cat id-rsa.pub >> authorized_keys;此后.ssh下面会出现authorized_keys文件。
5.然后将第一台机器的.ssh目录下面的authorized_keys文件拷贝到第二台计算机的.ssh目录下,如:scp authorized_keys xuhui@cloud002:~/.ssh/
6.再转到第二台机器的.ssh目录下,会发现刚刚传输过来的文件-authorized_keys,然后执行命令,将第二台计算机的公钥也加进来,如:cat id-rsa.pub >> authorized_keys.
7.将第二台计算机新生成的authorized_keys传输第三台计算机,将第三台计算机的公钥-id-rsa.pub添加到从第二台计算机传过来的authorized_keys里面。
8.依次类推,直至最后一台计算机。
9.在最后一台计算机执行完添加后,生成的authorized_keys文件就包含所有计算机的公钥,如果以后还有机器加进来,可以直接添加到文件-authorized_keys。最后,将最后生成的authorized_keys复制到每一台计算机的.ssh目录下,覆盖掉之前的authorized_keys。
10.完沉第九步后,就可以在任意一台计算机上,免密码ssh登录到其他计算了。
ssh 免密码设置失败原因总结
先复习一下设置ssh免密码操作的步骤:
进入主目录
cd
生成公钥
ssh-keygen -t rsa -P '' (注:最后是二个单引号,表示不设置密码)
然后分发公钥到目标机器
ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@对方机器IP (注意不要忘记了参数-i)
注:ssh-copy-id -i 是最简单的办法,如果不用这个,就得分二个步骤:
a) 先scp 将本机的id_rsa.pub复制到对方机器的.ssh目录下
b) 在对方机器上执行 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 导入公钥
上面的操作完成后,就可以用 ssh 对方机器IP 来测试了,顺利的话,应该不会提示输入密码。
如果失败,有可能是以下原因:
1、权限问题
.ssh目录,以及/home/当前用户 需要700权限,参考以下操作调整
sudo chmod 700 ~/.ssh
sudo chmod 700 /home/当前用户
.ssh目录下的authorized_keys文件需要600或644权限,参考以下操作调整
sudo chmod 600 ~/.ssh/authorized_keys
2、StrictModes问题
编辑
sudo vi /etc/ssh/sshd_config
找到
#StrictModes yes
改成
StrictModes no
- 生成密钥并上传至远程主机后,任然不可用
打开服务器的 /etc/ssh/sshd_config 这个文件,取消注释。
- 1
- 2
- 1
- 2
- 重启服务器的ssh服务。
如果还不行,可以用ssh -vvv 目标机器ip 查看详情,根据输出内容具体问题具体分析了