Linux系统 免密ssh登录配置及解释说明
一、在需要登录的源机器上生成密钥
(比如从A登录到B和C,就需要在A源机器上生成密钥,然后把公钥文件内容,复制到B和C目标机器上)
(这就好比公司的指纹锁,你需要把你的指纹录入进去,下次进入的时候只要比对一下你的指纹就可以开门了)
切换到应对账号登录A
执行命令:ssh-keygen -t rsa 回车后生成如下两个文件(注意待生成文件路径~/.ssh/)

可以看到A机器上执行命令:ssh-keygen -t rsa后,在路径~/.ssh/下生成了id_rsa.pub公钥文件,A上的公钥文件的内容复制添加到B和C机器的~/.ssh/authorized_keys文件内就可以实现从A免密登录到B和C。
二、目标机器配置
2.1在A机器上执行:cat ~/.ssh/id_rsa.pub,把显示出来的内容复制到B和C机器的~/.ssh/authorized_keys文件内。

2.2在B和C机器上执行:vim ~/.ssh/authorized_keys,把上一步A机器公钥中的内容复制进来,并保存。也可以通过其它方法把文件内容追加进来。
2.3如果是非root用户,就需要在B和C机上修改~/.ssh/authorized_keys权限,如果是root用户就不需要修改权限。
chmod 700 ~/.ssh/authorized_keys
2.4重启ssh服务
/sbin/service sshd restart
至此就可以实现从A机器免密登录到B和C机器。
三、sshd其他配置
因openssh的版本不一样,sshd服务配置文件也存在差异
像很多人写的配置方法里面需要配置,RSAAuthentication yes ,PubkeyAuthentication yes ,这两项,我这边都没有开启也是正常可以免密登录。
如果有升级安装过openssh,其中有一项sftp-server配置路径不对,会导某些软件免密登录传输文件失败的问题,
执行:find / -name sftp-server,看路径位置

修改sshd配置文件vi /etc/ssh/sshd_config
找到Subsystem sftp /data/openssh/libexec/sftp-server
修改为Subsystem sftp /usr/libexec/openssh/sftp-server
保存后,重启sshd服务。

浙公网安备 33010602011771号