注意:需要关闭selinux,以及文件权限
在两台linux主机上由于环境的需要,经常要配置两台主机之间免密码登录,这就要用到key认证,也就是所谓的公私钥认证。便于理解,我这里指定两台主机为 A 和 B 。如果A主机想免密码登录到B主机上,则A主机上存放私钥,B 主机上存放公钥。通过ssh-keygen 命令生成的两个文件为:公钥文件 ~/.ssh/id_rsa.pub; 私钥文件 ~/.ssh/id_rsa 。而B主机上存放公钥时,需要将id_rsa.pub的内容存放到~/.ssh/authorized_keys 文件内,并且保证权限为600 。
一、生成和导入KEY
A主机上生成key
- $ ssh-keygen -t rsa
- $ ls
- id_rsa id_rsa.pub
将key导入到远程的B主机上,并修改权限
- A主机上操作
- $ cat /root/.ssh/id_rsa.pub | ssh root@远程服务器ip 'cat - >> ~/.ssh/authorized_keys'
- B主机上操作
- $ chmod 600 ~/.ssh/authorized_keys
不过还有更简单的方法,不需要在B主机上再修改权限 ,而直接将公钥内容导入到远程主机上,使用ssh-copy-id命令,如下:
- $ ssh-copy-id -i /root/.ssh/id_rsa root@xxx,xxx,xxx,xxx
二、配置sshd_config
配置完key后,需要在sshd_config文件中开启key认证
- $ vim /etc/ssh/sshd_config
- PubkeyAuthentication yes //将该项改为yes
修改完成后,通过/etc/init.d/sshd restart 重启ssh服务重新加载配置。如果想要禁用密码认证,更改如下项:
- $ vim /etc/ssh/sshd_config
- UsePAM yes
- 为
- UserPAM no
更多配置参数及其意义,可以通过man sshd_config 查看。