Debian 设置密钥进行 SSH 连接

使用密钥进行 SSH 连接是一项重要的安全措施,可以降低服务器遭到密码破解的风险,整个过程主要包含以下三个步骤 (以 MacBook 为例) :

1 生成 SSH 密钥对

1.1 在终端进行密钥生成

1
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • -t rsa:指定密钥类型为 RSA ;
  • -b 4096:密钥长度为4096位,提供较高的安全性;
  • -C “your_email@example.com“:为密钥文件添加注释,方便端对端识别;
  • Mac 会提示你设置密钥保存路径(默认是 ~/.ssh/id_rsa),同时设置密碼(passphrase),建议设置强密码以增加安全性。

1.2 查看公钥及私钥信息

1
ls ~/.ssh/
  • 成功生成后,你将看到 id_rsa (私钥) 和 id_rsa.pub (公钥):私钥 id_rsa 需要在Mac上自行保存,不能泄露给任何人,公钥 id_rsa.pub 可以安全地分享、进行配对。

2 复制公钥到服务器

2.1 终端执行命令复制公钥

1
ssh-copy-id -o "Port=22" username@your_debian_server_ip
  • username替换为你在Debian服务器的用户名 (建议使用普通用户) ;

  • 首次连接可能需要输入密钥的保存密码或者指纹验证;

  • 连接至服务器端时需要输入用户密码来完成公钥的复制;

  • ssh-copy-id 会自动在服务器上创建 ~/.ssh目录并设置相应的权限,然后将你的公钥添加到 ~/.ssh/authorized_keys 文件中保存。

2.2 使用密钥进行 SSH 连接

1
ssh username@your_debian_server_ip -p 22
  • 如果配置成功,终端会提示你输入密钥的保存密码,然后进行连接;

  • 如果登入失败,请检查 Debian 的日志 (/var/log/auth.log 或 journalctl -u sshd) 并找出错误原因,一般为公钥文件权限设置不正确。

3 配置 sshd_config 文件

3.1 修改文件,禁用密码访问

1
sudo nano /etc/ssh/sshd_config
  • 允许公钥登陆:确保该命令行没有被注释 ( 即前面没有 # ) ,并设置:PubkeyAuthentication yes ;

  • 禁止密码登陆:找到该行命令,并将其设置为 no,如果这行不存在则添加它:PasswordAuthentication no ;

  • 禁用 Root 用戶登陆 ( 可选 ) :找到 PermitRootLogin yes 或 PermitRootLogin prohibit-password,将其改为:PermitRootLogin no ;

  • 保存并退出文件,如果使用的是 nano,按下 CTRL + X 然后输入 Y 并按回车键确认保存。

3.2 重启 SSH 服务以应用

1
sudo systemctl restart sshd
  • 验证配置是否生效:尝试从另一个终端或机器通过 SSH 公钥方式连接,如果一切正常,则你只能进行公钥验证,密码连接会被拒绝。

Debian SSH

COMMENTS