linux通过ssh安全密钥免密连接远程主机
在生产环境中使用密码进行口令验证终归存在着被暴力破解或嗅探截获的 风险。如果正确配置了密钥验证方式,那么 sshd 服务程序将更加安全。,具体操作步骤如下:
1、首先在客户端中生成密钥对,输入命令ssh-keygen,然后直接按回车即可,如图:

在root目录下的.ssh目录下可以看到公钥文件,如图:

2、将此公钥文件传送到远程机器上,会提示输入远程主机密码,如图:

也可以直接将id_rsa.pub的文件内容复制到目标机器用户下的/root/.ssh/authorized_keys文件中,如果是其他用户就修改root为其他用户名,.ssh/authorized_keys没有就新建
3、在远程主机上,修改配置文件,只允许密钥认证(PasswordAuth),取消密码认证,如图:


设置完成后执行命令systemctl restart sshd 重启sshd服务。
重新在客户端执行ssh 10.88.5.31发现已经可以登录机器,如图:

至此,通过密钥方式登录远程服务器配置完成!
注意:如果按照上述配置,通过ssh连接提示如下错误:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
因为ssh 对 .ssh 目录和 authorized_keys 文件的权限要求非常严格。如果权限设置不正确,SSH 会拒绝公钥认证,因此检查目标端的.ssh目录和authorized_keys文件的权限,重新设置如下:
chmod 700 ~/.ssh #.ssh目录一定要设置为700
chmod 600 ~/.ssh/authorized_key #authorized_key文件一定要设置为600


