Linux服务器ssh登录有密码登录和证书登录两种。如果使用密码登录,容易遭受密码泄露或者暴力破解,我们可以使用ssh证书登录并禁止使用密码登录,ssh证书登录通过公钥和私钥来完成整个连接过程,公钥保存在服务器上,私钥保存在本地。SSH证书登录配置参考如下:
一、 生成密钥(公钥与私钥)
首先在服务器上制作密钥对,执行命令:ssh-keygen

密钥生成过程中可根据提示对密钥设置密码,可以保护私钥不被盗用,也可留空直接回车。在 当前登录用户的家目录中生成了一个 .ssh 的隐藏目录,内含两个密钥文件。id_rsa 为私钥,id_rsa.pub 为公钥。
二、 在服务器上安装密钥
查看密钥认证文件authorized_keys是否存在,若不存在则创建并授权,命令如下:
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
将公钥加入到authorized_keys文件中,命令如下:
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
三、 设置sshd配置文件允许使用密钥登录
修改/etc/ssh/sshd_config文件,启用以下参数:
RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin yes
AuthorizedKeysFile .ssh/authorized_keys
四、 使用私钥登录验证
在服务上登录验证
ssh 用户名@localhost -i id_rsa
在服务器上登录试验成功后,将私钥文件id_rsa下载至客户端机器上。使用PuTTY登录,打开PuTTYgen,load密钥文件

打开PuTTY,输入服务器地址,在Connection-SSH-Auth下,点击“Browse…”,导入私钥文件,点击“Open”,即可登录服务器
五、 禁用密码登录
修改/etc/ssh/sshd_config文件,关闭密码登录
PasswordAuthentication no
重启sshd服务
systemctl restart sshd