在 Linux 服务器上启用“公钥认证”

2024-10-20#SSH#Linux

在登录远程的Linux服务器时,通常使用 SSH 进行访问。通常可使用“用户名+密码”的方式,或使用密钥实现“免密登录”。如果在服务器上设置好了客户端公钥后,依然无法认证,那么很可能没并没有开启后者,此时就需要手动启用。

在服务器开启“公钥认证” 🔗

在 Linux 服务器上,SSH 相关的配置位于 /etc/ssh/ 目录下。主要是两个文件:/etc/ssh/ssh_config/etc/ssh/sshd_config。前者是配置 SSH 客户端,后者是配置 SSH 服务器端。

想要开启服务器的“公钥认证”,那么就要修改 /etc/ssh/sshd_config 文件。修改或者添加如下配置:

PubkeyAuthentication yes

然后在终端重启 SSH 服务器:

$ systemctl restart sshd

理论上来说,此时就可以进行“免密登录”了。

验证 🔗

确保客户端上已经生成了密钥对 🔗

确保客户端主机的 ~/.ssh 目录下,已经生成了密钥对。如果没有,那么使用 ssh-keygen 命令生成。

将客户端公钥添加到服务器 🔗

在 Linux 服务器上,创建或者打开 ~/.ssh/authorized_keys 文件,在其中添加客户端的公钥。注意,~/.ssh/authorized_keys 的文件权限为 600;而 ~/.ssh 目录的权限应该为 700

登录 🔗

在客户端使用 ssh 命令登录服务器,此时应该可以直接通过认证。

结尾 🔗

出于安全的考虑,“公钥认证”是登录Linux服务器的首选方式。如果查看 /etc/ssh/sshd_config 文件,就会发现其中还有“密码认证”的配置项:PasswordAuthentication。如果将其值修改为 no,那么就不能使用密码登录了。


加载中...