本文基于的环境CentOS release 6.7 (Final)
由于一些特殊的需求,需要免密登录远程主机,这里介绍ssh使用RSA公钥来实现免密登录远程主机的设置方式。
假设我们现在要从A机器免密登录B机器
首先,在A机器上执行命令
ssh-keygen -t rsa
此命令默认会在~/.ssh目录下生成两个文件,id_rsa和id_rsa.pub分别存放私钥和公钥
其次,将生成的id_rsa.pub文件中的内容附加到B机器的~/.ssh/authorized_keys文件中。可以手动粘贴或者将id_rsa.pub scp到B机器上,再执行命令
cat id_rsa.pub >> ~/.ssh/authorized_keys
最后,在B机器上打开rsa登录,并设置RSA公钥的位置。编辑/etc/ssh/sshd_config,确保如下配置生效,并重启服务器。之后就可以免密登录远程主机了。
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
需要注意的几点:
1、确保A机器私钥文件名是id_rsa,否则会因为识别不到私钥文件而不会执行免密rsa登录;
2、确保B机器上.ssh/authorized_keys文件的属性是600,否则要使用命令、
chmod 600 ~/.ssh/authorized_keys
更改属性。
3、authorized_keys存放的目录需要与登录用户对应,比如使用root用户登录,则是在/home/root/.ssh/authorized_keys