前言:

SSH 密钥是一种更安全的登录SSH 服务器的方法,因为它们不易受到常见的暴力密码黑客攻击

尽管SSH 支持基于密码的身份验证,但通常建议使用SSH 密钥

生成SSH 密钥对会创建两个长字符串:公钥和私钥

可以将公钥放在任何服务器上,然后使用可以访问私钥的SSH 客户端连接到服务器

服务器上使用 ssh 密钥登录

本地客户端生成密钥对

使用下面命令生成密钥对:

ssh-keygen -t rsa -P

-P 表示空密码,一路回车,在 .ssh 目录会生成下面三个文件

cd ~/.ssh && ls

id_rsa id_rsa.pub known_hosts

id_rsa: 表示私钥,不要泄露
id_rsa.pub: 表示公钥

查看公钥内容,然后复制下来或者将两个文件下载下来:

cat ~/.ssh/id_rsa.pub

上面客户端完成,开始折腾服务端

服务端新建authorized_keys

root目录下新建 .ssh 文件夹

mkdir /root/.ssh

.ssh 文件夹新建 authorized_keys 文件

vi /root/.ssh/authorized_keys

上面添加客户端复制下来的 id_rsa.pub 内容,保存。

修改 sshd_config 内容

vi /etc/ssh/sshd_config

禁用密码登陆

PasswordAuthentication no

允许root用户登录

PermitRootLogin yes

指定公钥数据库文件

AuthorsizedKeysFile .ssh/authorized_keys

以启用密钥登陆

PubkeyAuthentication yes

防ssh断开

ClientAliveInterval 60
ClientAliveCountMax 30

最后重启 sshd 服务:

systemctl restart sshd

然后你就可以用 ssh 命令无密码登录服务器了