设置ssh免密码登录(使用RSA Key)
机器1:10.37.64.52
机器2:10.37.64.53
设置机器1和机器2之间免密码登录
以下全是使用root用户,若以其他用户登录(如postgres用户),则先切换到该用户环境下在执行以下步骤。
机器1免密码登录机器2
1)机器1上生成RSA Key
cd ~/.ssh/
rm -f ./*
ssh-keygen -t rsa //随后按3次ENTER键
此时在.ssh目录下生成了id_rsa和id_rsa.pub。其中id_rsa是私钥,本机要用;id_rsa.pub是公钥,给其他的机器用。
2) 设置自身ssh互信
cd ~/.ssh/
cp id_rsa.pub authorized_keys
3)将公钥上传到机器2上
scp ./id_rsa.pub root@10.37.64.53:/root/.ssh/1_id_rsa.pub
4)将公匙写入机器2中的~/.ssh/authorized_keys文件
cat ~/.ssh/1_id_rsa.pub >> ~/.ssh/authorized_keys
机器2免密码登录机器1
与“机器1免密码登录机器2”的操作类似。
常见问题
- 设置ssh免密码后仍需要输入密码
在root用户下查看系统日志文件(rhel6.3目录 /etc/log/secure,centOS6.5目录/var/log/secure),发现如下日志:
Jun 26 15:28:14 sndsdevapp14 sshd[18439]: Authentication refused: bad ownership or modes for directory /var/lib/pgsql
Jun 26 15:28:16 sndsdevapp14 sshd[18439]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=sndsdevapp12 user=postgres
由日志可知,是目录/var/lib/pgsql的权限问题,将该目录权限设为700即可。
注:如果发现secure文件中没有日志记载,可能是rsyslog服务未启动,执行 ’ service rsyslog start ’ 启动即可。