有时候两台或多台主机之间我们希望可以进行免密登录,其实SSH有提供这样的功能,只需三步。首先在SSH服务端配置允许公钥私钥配对认证,然后在客户端生成公钥,最后将客户端的公钥上传到服务端。这样就可以从客户端免密登录服务端特定的用户了。
具体操作如下:
一、在SSH服务器所在机器上
1、以root用户登录,更改ssh配置文件 /etc/ssh/sshd_config,去除以下配置的注释
RSAAuthentication yes #启用rsa认证
PubkeyAuthentication yes #启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径
2、重启SSH服务
systemctl restart sshd //重启ssh服务
二、在客户端机器上
1、生成公钥私钥对
ssh-keygen -t rsa
一路默认回车,系统在/root/.ssh下生成id_rsa、id_rsa.pub
这里使用的rsa还可以指定其他算法如:dsa | ecdsa | ed25519 | rsa1z。不同版本的系统支撑的算法可能不一样。详情请使用man ssh-keygen查看。
2、把id_rsa.pub发送到服务端机器上
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.xx.xx.xx #server ip
这里传个了172.xx.xx.xx主机的root用户,你可以替换成其他用户。
3、验证
ssh root@192.168.11.20 #server ip
三、ssh免密失败问题
可参考:https://www.360blogs.top/problem-without-passwd-login/