下文以配置2台主机无密码登录为例,本机名为master,另外一台机子名为slave1
1. 配置主机名
分别修改2台机子的主机名为master和slave1,具体方法:CentOS修改主机名(hostname)
2. 配置hosts
在2台主机上都执行以下操作,当前服务器放第一行
vi /etc/hosts
增加2行
115.10.20.1 master //前面为对应主机的ip地址115.10.20.2 slave1
3. 生成公钥秘钥
(1)在master输入
cd ~/.ssh/ssh-keygen -t rsa //一直按回车即可cat id_rsa.pub >> authorized_keys //将公钥复制到authorized_keys文件
(2)在slave1输入
cd ~/.ssh/ssh-keygen -t rsa //一直按回车即可scp id_rsa.pub root@master:~/.ssh/id_rsa.pub_slave1 //将公钥复制到master上
(3)在master输入
cat id_rsa.pub_slave1 >> authorized_keys //将slave1的公钥追加到authorized_keys中(里面已经有master的公钥)scp authorized_keys root@slave1:~/.ssh/ //将包含2台主机公钥的authorized_keys文件复制到slave1
4. 修改权限及配置
检查.ssh目录和authorized_keys的权限,如果不是分别为700和600以上(600或者644)的话,在2台主机上执行以下命令
chmod 700 ~/.sshchmod 644 ~/.ssh/authorized_keysvi /etc/ssh/sshd_config
确认sshd_config中以下部分的内容(默认情况下以下代码是注释掉的,但是默认值就是yes,所以通常情况下不用配置):
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile.ssh/authorized_keys
重启ssh服务:service sshd restart
5. 测试
在master上使用ssh slave1,ssh localhost测试是否无需密码,在slave1使用ssh master,ssh localhost测试是否无需密码.