zh
VPS SSH密钥认证:完整配置指南
SSH密钥认证比密码登录安全得多。密钥使用数学上无法暴力破解的加密算法,即使密钥泄露也需要配合私钥文件才能登录。本指南介绍如何在本地生成SSH密钥对,将公钥上传到VPS,并完全禁用密码登录。
Need this done for your project?
We implement, you ship. Async, documented, done in days.
在本地生成SSH密钥对
SSH密钥对由私钥(保存在本地,绝不分享)和公钥(上传到服务器)组成。
在本地终端(Linux/macOS/Windows PowerShell)生成ED25519密钥:
ssh-keygen -t ed25519 -C "标识注释(如邮箱)"
命令执行后:
1. 选择保存路径(直接回车使用默认路径 ~/.ssh/id_ed25519)
2. 设置密钥密码(passphrase)- 强烈建议设置,即使密钥文件泄露也多一层保护
3. 确认密钥密码
生成完成后,~/.ssh/ 目录下会有两个文件:
- id_ed25519:私钥文件(权限应为600,绝不分享)
- id_ed25519.pub:公钥文件(可安全分享)
查看公钥内容:cat ~/.ssh/id_ed25519.pub
ED25519算法比传统RSA 2048更安全、更快速,推荐优先使用。
将公钥上传到VPS
方法一:使用ssh-copy-id(最简便)
ssh-copy-id -i ~/.ssh/id_ed25519.pub 用户名@服务器IP
输入服务器密码后,公钥会自动写入服务器的 ~/.ssh/authorized_keys 文件。
方法二:手动复制(当ssh-copy-id不可用时)
在本地复制公钥内容:
cat ~/.ssh/id_ed25519.pub
SSH登录服务器后执行:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
# 粘贴公钥内容,保存退出
chmod 600 ~/.ssh/authorized_keys
验证密钥登录:
ssh -i ~/.ssh/id_ed25519 用户名@服务器IP
若能成功登录(可能需要输入密钥密码),说明配置正确。
禁用密码登录并加固SSH配置
确认密钥登录工作正常后,禁用密码登录可彻底阻止暴力破解攻击。
重要:在同一SSH会话中完成以下操作,不要关闭当前连接,直到验证新会话可以登录。
编辑SSH服务配置:
sudo nano /etc/ssh/sshd_config
修改以下配置项(使用#注释掉原行,新增修改后的配置):
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PermitRootLogin no
ChallengeResponseAuthentication no
重启SSH服务:
sudo systemctl restart sshd
打开一个新终端窗口,尝试用密钥登录测试:
ssh -i ~/.ssh/id_ed25519 用户名@服务器IP
登录成功后,尝试用密码登录确认已被拒绝。到此SSH密钥认证配置完成,服务器安全性大幅提升。
Related Services
Why Anubiz Host
100% async — no calls, no meetings
Delivered in days, not weeks
Full documentation included
Production-grade from day one
Security-first approach
Post-delivery support included
Ready to get started?
Skip the research. Tell us what you need, and we'll scope it, implement it, and hand it back — fully documented and production-ready.