内容纲要

有时候两台或多台主机之间我们希望可以进行免密登录,其实SSH有提供这样的功能,只需三步。首先在SSH服务端配置允许公钥私钥配对认证,然后在客户端生成公钥,最后将客户端的公钥上传到服务端。这样就可以从客户端免密登录服务端特定的用户了。

具体操作如下:

一、在SSH服务器所在机器上

1、以root用户登录,更改ssh配置文件 /etc/ssh/sshd_config,去除以下配置的注释

RSAAuthentication yes #启用rsa认证
PubkeyAuthentication yes #启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径

2、重启SSH服务

[root@server /]#systemctl restart sshd  //重启ssh服务

二、在客户端机器上

1、生成公钥私钥对

[root@client /]#ssh-keygen -t rsa

一路默认回车,系统在/root/.ssh下生成id_rsaid_rsa.pub

这里使用的rsa还可以指定其他算法如:dsa | ecdsa | ed25519 | rsa1z。不同版本的系统支撑的算法可能不一样。详情请使用man ssh-keygen查看。

2、把id_rsa.pub发送到服务端机器上

[root@client /]#ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.11.20 #server ip

这里传个了192.168.11.20主机的root用户,你可以替换成其他用户。

3、验证

[root@client /]#ssh root@192.168.11.20 #server ip

三、ssh免密失败问题

可参考:https://www.360blogs.top/problem-without-passwd-login/