Debian 设置密钥进行 SSH 连接
使用密钥进行 SSH 连接是一项重要的安全措施,可以降低服务器遭到密码破解的风险,整个过程主要包含以下三个步骤 (以 MacBook 为例) :
1 生成 SSH 密钥对
1.1 在终端进行密钥生成
1 | |
- -t rsa:指定密钥类型为 RSA ;
- -b 4096:密钥长度为4096位,提供较高的安全性;
- -C “your_email@example.com“:为密钥文件添加注释,方便端对端识别;
- Mac 会提示你设置密钥保存路径(默认是 ~/.ssh/id_rsa),同时设置密碼(passphrase),建议设置强密码以增加安全性。
1.2 查看公钥及私钥信息
1 | |
- 成功生成后,你将看到 id_rsa (私钥) 和 id_rsa.pub (公钥):私钥 id_rsa 需要在Mac上自行保存,不能泄露给任何人,公钥 id_rsa.pub 可以安全地分享、进行配对。
2 复制公钥到服务器
2.1 终端执行命令复制公钥
1 | |
username替换为你在Debian服务器的用户名 (建议使用普通用户) ;
首次连接可能需要输入密钥的保存密码或者指纹验证;
连接至服务器端时需要输入用户密码来完成公钥的复制;
ssh-copy-id 会自动在服务器上创建 ~/.ssh目录并设置相应的权限,然后将你的公钥添加到 ~/.ssh/authorized_keys 文件中保存。
2.2 使用密钥进行 SSH 连接
1 | |
如果配置成功,终端会提示你输入密钥的保存密码,然后进行连接;
如果登入失败,请检查 Debian 的日志 (/var/log/auth.log 或 journalctl -u sshd) 并找出错误原因,一般为公钥文件权限设置不正确。
3 配置 sshd_config 文件
3.1 修改文件,禁用密码访问
1 | |
允许公钥登陆:确保该命令行没有被注释 ( 即前面没有 # ) ,并设置:PubkeyAuthentication yes ;
禁止密码登陆:找到该行命令,并将其设置为 no,如果这行不存在则添加它:PasswordAuthentication no ;
禁用 Root 用戶登陆 ( 可选 ) :找到 PermitRootLogin yes 或 PermitRootLogin prohibit-password,将其改为:PermitRootLogin no ;
保存并退出文件,如果使用的是 nano,按下 CTRL + X 然后输入 Y 并按回车键确认保存。
3.2 重启 SSH 服务以应用
1 | |
- 验证配置是否生效:尝试从另一个终端或机器通过 SSH 公钥方式连接,如果一切正常,则你只能进行公钥验证,密码连接会被拒绝。

RELATED POSTS
COMMENTS