Debian 12 上禁用密码登录并配置 SSH 密钥登录

在 Debian 12 上禁用密码登录并配置 SSH 密钥登录(使用 ed25519)

1: 生成 SSH 密钥对

首先,在本地机器上生成一个 ed25519 类型的 SSH 密钥对。打开终端并执行以下命令:

ssh-keygen -t ed25519 -C "[email protected]"
  • -t ed25519 指定生成 ed25519 密钥。
  • -C 用于添加一个注释,通常使用电子邮件或用户名。

系统会提示你选择密钥存储的位置:

Enter file in which to save the key (/home/your_user/.ssh/id_ed25519):

你可以直接按回车选择默认位置,也可以指定一个不同的文件名。接着会要求输入一个密码来保护私钥(可以选择为空)。

2: 将公钥复制到 Debian 12 服务器

将生成的公钥复制到 Debian 12 服务器上。在本地机器上执行以下命令:

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@your_debian_server_ip
  • ~/.ssh/id_ed25519.pub 是你生成的公钥路径。
  • user@your_debian_server_ip 是你 Debian 12 服务器的用户名和 IP 地址。

该命令会将公钥复制到目标服务器的 ~/.ssh/authorized_keys 文件中,确保你可以使用私钥登录服务器。

3: 禁用密码登录

登录到 Debian 12 服务器(假设你已经能够通过密钥登录),然后修改 SSH 配置文件来禁用密码登录。

  1. 打开 /etc/ssh/sshd_config 配置文件: sudo nano /etc/ssh/sshd_config
  2. 查找以下两行并修改或确保它们如下所示: PasswordAuthentication no ChallengeResponseAuthentication no 这些设置将禁用密码认证和挑战响应认证。
  3. 确保以下行未被注释掉,并设置为 yesPubkeyAuthentication yes
  4. 保存文件并退出编辑器(在 nano 中按 CTRL + X,然后按 Y 保存更改)。

4: 重新启动 SSH 服务

修改配置文件后,需要重新启动 SSH 服务以使更改生效:

sudo systemctl restart sshd

5: 测试 SSH 密钥登录

在本地机器上,尝试使用 SSH 密钥登录到服务器:

ssh -i ~/.ssh/id_ed25519 user@your_debian_server_ip

如果成功登录且没有要求输入密码,说明密钥认证配置成功。

6: 确保只有密钥登录

为了进一步加强安全性,你可以尝试使用 SSH 密码登录进行连接。应该会被拒绝,确保只有密钥能够登录。


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注