一句话总结:用
ssh-keygen生成密钥对,把公钥扔到服务器,以后登录不用再输密码——安全又方便,是每个 VPS 用户的必备技能。
你有没有过这种感觉:每次 SSH 登录 VPS 都要手动输密码,输错了还得重来,有时候还担心密码被暴力破解……
密码登录的问题说白了就三个:
- 麻烦:每次连接都要输,管多台服务器更烦
- 不安全:弱密码分分钟被暴力撞库
- 不适合自动化:脚本、CI/CD 流程里不能把密码明文写进去
而 SSH 密钥认证完美解决了这三个问题。原理其实很简单:你在本地生成一把"私钥"(相当于钥匙),把对应的"公钥"(相当于锁头)装到服务器上,以后登录的时候系统自动完成"对锁"的过程,根本不需要你输密码。
值得一提的是,像 DMIT 这类高端 VPS 服务商,默认就强制使用 SSH 密钥登录,不支持密码登录——所以 ssh keygen 生成 这件事,买完 VPS 第一件事就得学会。
在开始之前确认一下:
- 本地系统:Windows 10/11、macOS、Linux 均可,现代系统都内置了
ssh-keygen工具 - 一台 VPS:用来接收公钥并测试连接(稍后我们会推荐几款性价比高的方案)
- 终端/命令行:Windows 用 PowerShell 或 Windows Terminal,Mac/Linux 直接用 Terminal
在生成新密钥之前,先看看本地有没有已经生成过的:
bash ls ~/.ssh/
如果看到 id_rsa、id_ed25519 或者类似文件,说明之前生成过了,可以直接用,不需要重新生成(除非你想换算法或独立管理多个密钥对)。
这是核心步骤。打开终端,输入:
bash ssh-keygen -t ed25519 -C "your_email@example.com"
参数说明:
| 参数 | 含义 |
|---|---|
-t ed25519 |
指定算法类型,Ed25519 是目前推荐的最安全算法 |
-C "备注" |
添加注释,通常写邮箱,方便识别 |
如果你的系统比较老,不支持 Ed25519,可以改用 RSA:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
按下回车后,系统会问你几个问题:
Enter file in which to save the key (/home/yourname/.ssh/id_ed25519):
直接回车,使用默认路径即可。
Enter passphrase (empty for no passphrase):
这里可以设置一个密码短语(Passphrase)保护私钥文件——相当于给钥匙再加一把锁。建议设置,能防止私钥文件被别人拿走后直接使用。当然如果你要做自动化脚本,留空也行。
生成成功后会看到类似输出:
Your identification has been saved in /home/yourname/.ssh/id_ed25519 Your public key has been saved in /home/yourname/.ssh/id_ed25519.pub The key fingerprint is: SHA256:xxxxxxxxxxxxxxxxxxxxxxxx your_email@example.com
这时你的 ~/.ssh/ 目录下多了两个文件:
id_ed25519:私钥,绝对不能给任何人,不能上传到服务器id_ed25519.pub:公钥,要上传到服务器的就是这个
bash ssh-copy-id -i ~/.ssh/id_ed25519.pub root@你的服务器IP
执行后输入一次密码,公钥就自动写入服务器的 ~/.ssh/authorized_keys 文件了。简单粗暴,一步到位。
先查看公钥内容:
bash cat ~/.ssh/id_ed25519.pub
复制输出的那一整行内容(以 ssh-ed25519 开头,很长的一串)。
然后登录到服务器,执行:
bash mkdir -p ~/.ssh chmod 700 ~/.ssh echo "粘贴你的公钥内容" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
权限必须正确,这是 SSH 密钥登录不生效的最常见原因之一:
.ssh目录:700(只有属主可读写执行)authorized_keys文件:600(只有属主可读写)
如果你用的是 DMIT VPS,由于它默认就是密钥登录,可以在购买时或者控制台直接粘贴公钥,省去了手动上传这一步。把上面 cat ~/.ssh/id_ed25519.pub 的内容复制进控制面板的公钥框里就行了。
bash ssh -i ~/.ssh/id_ed25519 root@你的服务器IP
如果设置了 Passphrase,会提示你输入;没有设置的话,直接登进去了。
看到命令行提示符变成服务器的 shell,说明配置成功。
密钥登录配置好之后,可以关闭密码登录,让服务器只接受密钥认证:
bash sudo vim /etc/ssh/sshd_config
找到并修改以下几行:
PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no
保存后重启 SSH 服务:
bash sudo systemctl restart sshd
注意:关闭密码登录之前,一定先确认密钥登录能正常使用,否则可能把自己锁在外面。
管理多台 VPS 时,每次都输 IP 地址很烦。可以编辑 ~/.ssh/config 文件:
Host dmit-lax HostName 154.17.29.71 User root IdentityFile ~/.ssh/id_ed25519
Host dmit-hkg HostName 103.117.100.20 User root IdentityFile ~/.ssh/id_ed25519
配置好之后,登录只需要:
bash ssh dmit-lax
是不是舒服多了?
说到 VPS,这里专门介绍一下 DMIT——一家在 CN2 GIA 精品线路领域口碑很好的服务商,覆盖洛杉矶、香港、东京三大机房,全系采用 AMD EPYC 处理器 + NVMe SSD。最关键的是,它默认强制 SSH 密钥登录,安全意识比很多同行强得多。
配合前面学的 ssh-keygen 生成流程,开箱即用,体验非常顺滑。
| 套餐 | CPU | 内存 | 硬盘 | 流量 | 带宽 | 价格 | 购买 |
|---|---|---|---|---|---|---|---|
| TINY | 1核 | 2GB | 20GB | 1000GB | 1Gbps | $9.99/月 | 立即购买 |
| 2核 | 2GB | 40GB | 1500GB | 4Gbps | $14.90/月 | 立即购买 | |
| STARTER | 2核 | 2GB | 80GB | 3000GB | 10Gbps | $29.90/月 | 立即购买 |
| MINI | 4核 | 4GB | 80GB | 5000GB | 10Gbps | $58.88/月 | 立即购买 |
| MICRO | 4核 | 4GB | 160GB | 7000GB | 10Gbps | $74.99/月 | 立即购买 |
| MEDIUM | 6核 | 8GB | 160GB | 15000GB | 10Gbps | $168.88/月 | 立即购买 |
| LARGE | 8核 | 16GB | 320GB | 25000GB | 10Gbps | $338.88/月 | 立即购买 |
| GIANT | 12核 | 24GB | 640GB | 50000GB | 10Gbps | $619.99/月 | 立即购买 |
| 套餐 | CPU | 内存 | 硬盘 | 流量 | 带宽 | 价格 | 购买 |
|---|---|---|---|---|---|---|---|
| TINY | 1核 | 2GB | 20GB | 1500GB | 2Gbps | $9.99/月 | 立即购买 |
| 2核 | 2GB | 40GB | 3000GB | 4Gbps | $14.90/月 | 立即购买 | |
| STARTER | 2核 | 2GB | 80GB | 5000GB | 10Gbps | $29.90/月 | 立即购买 |
| MINI | 4核 | 4GB | 80GB | 10000GB | 10Gbps | $58.88/月 | 立即购买 |
| MICRO | 4核 | 4GB | 160GB | 14000GB | 10Gbps | $74.99/月 | 立即购买 |
| MEDIUM | 6核 | 8GB | 160GB | 30000GB | 10Gbps | $168.88/月 | 立即购买 |
| LARGE | 8核 | 16GB | 320GB | 50000GB | 10Gbps | $338.88/月 | 立即购买 |
| GIANT | 12核 | 24GB | 640GB | 100000GB | 10Gbps | $619.99/月 | 立即购买 |
VOLUME 系列(AMD EPYC 9005):
| 套餐 | CPU | 内存 | 硬盘 | 流量 | 带宽 | 价格 | 购买 |
|---|---|---|---|---|---|---|---|
| WEE | 1核 | 1GB | 20GB | 1000GB | — | $36.90/年 | 立即购买 |
| V2C2G | 2核 | 2GB | 40GB | 5000GB | 10Gbps | $14.90/月 | 立即购买 |
| V2C4G | 2核 | 4GB | 80GB | 10000GB | 10Gbps | $23.90/月 | 立即购买 |
| V4C4G | 4核 | 4GB | 120GB | 20000GB | 10Gbps | $36.90/月 | 立即购买 |
| V4C8G | 4核 | 8GB | 160GB | 40000GB | 10Gbps | $52.90/月 | 立即购买 |
| V8C16G | 8核 | 16GB | 240GB | 80000GB | 10Gbps | $119.90/月 | 立即购买 |
| V12C24G | 12核 | 24GB | 320GB | 160000GB | 10Gbps | $199.90/月 | 立即购买 |
GENERAL 系列(AMD EPYC 9004):
| 套餐 | CPU | 内存 | 硬盘 | 流量 | 带宽 | 价格 | 购买 |
|---|---|---|---|---|---|---|---|
| TINY | 1核 | 1GB | 20GB | 2000GB | — | $6.90/月 | 立即购买 |
| STARTER | 2核 | 2GB | 40GB | 4000GB | — | $12.90/月 | 立即购买 |
| MINI | 2核 | 4GB | 80GB | 8000GB | — | $21.90/月 | 立即购买 |
| MICRO | 4核 | 4GB | 120GB | 16000GB | — | $32.90/月 | 立即购买 |
| G2C4G | 2核 | 4GB | 80GB | 4000GB | 10Gbps | $16.90/月 | 立即购买 |
| G4C8G | 4核 | 8GB | 160GB | 8000GB | 10Gbps | $36.90/月 | 立即购买 |
| G8C16G | 8核 | 16GB | 320GB | 12000GB | 10Gbps | $79.90/月 | 立即购买 |
| G12C24G | 12核 | 24GB | 480GB | 240000GB | 10Gbps | $119.90/月 | 立即购买 |
| G16C32G | 16核 | 32GB | 640GB | 320000GB | 10Gbps | $199.90/月 | 立即购买 |
| 套餐 | CPU | 内存 | 硬盘 | 流量 | 带宽 | 价格 | 购买 |
|---|---|---|---|---|---|---|---|
| TINY | 1核 | 1GB | 20GB | 500GB | 1Gbps | $39.90/月 | 立即购买 |
| STARTER | 1核 | 2GB | 40GB | 1000GB | 1Gbps | $79.90/月 | 立即购买 |
| MINI | 2核 | 2GB | 60GB | 1500GB | 1Gbps | $119.90/月 | 立即购买 |
| MICRO | 4核 | 4GB | 80GB | 2000GB | 1Gbps | $159.90/月 | 立即购买 |
| MEDIUM | 4核 | 8GB | 160GB | 2500GB | 1Gbps | $179.90/月 | 立即购买 |
| LARGE | 8核 | 16GB | 320GB | 3000GB | 1Gbps | $239.90/月 | 立即购买 |
| GIANT | 8核 | 24GB | 640GB | 6000GB | 1Gbps | $499.90/月 | 立即购买 |
| 套餐 | CPU | 内存 | 硬盘 | 流量 | 带宽 | 价格 | 购买 |
|---|---|---|---|---|---|---|---|
| TINYv2 | 1核 | 1GB | 20GB | 1000GB | 1Gbps | $29.90/月 | 立即购买 |
| STARTERv2 | 1核 | 2GB | 40GB | 2000GB | 2Gbps | $59.90/月 | 立即购买 |
| MINIv2 | 2核 | 2GB | 60GB | 3000GB | 2Gbps | $89.90/月 | 立即购买 |
| MICROv2 | 4核 | 4GB | 80GB | 4000GB | 4Gbps | $129.90/月 | 立即购买 |
| MEDIUMv2 | 4核 | 8GB | 160GB | 6000GB | 4Gbps | $199.90/月 | 立即购买 |
| LARGEv2 | 8核 | 16GB | 320GB | 12000GB | 4Gbps | $389.90/月 | 立即购买 |
| GIANTv2 | 8核 | 24GB | 640GB | 24000GB | 4Gbps | $789.90/月 | 立即购买 |
| 套餐 | CPU | 内存 | 硬盘 | 流量 | 价格 | 购买 |
|---|---|---|---|---|---|---|
| WEE | 1核 | 1GB | 20GB | 1000GB | $36.90/年 | 立即购买 |
| TINY | 1核 | 1GB | 20GB | 2000GB | $6.90/月 | 立即购买 |
| STARTER | 1核 | 2GB | 40GB | 4000GB | $12.90/月 | 立即购买 |
| MINI | 2核 | 2GB | 60GB | 8000GB | $21.90/月 | 立即购买 |
| MICRO | 4核 | 4GB | 80GB | 16000GB | $32.90/月 | 立即购买 |
| MEDIUM | 4核 | 8GB | 160GB | 32000GB | $49.90/月 | 立即购买 |
| LARGE | 8核 | 16GB | 320GB | 64000GB | $99.90/月 | 立即购买 |
| GIANT | 8核 | 24GB | 640GB | 128000GB | $199.90/月 | 立即购买 |
| 套餐 | CPU | 内存 | 硬盘 | 流量 | 带宽 | 价格 | 购买 |
|---|---|---|---|---|---|---|---|
| TINY | 1核 | 1GB | 20GB | 500GB | 1Gbps | $21.90/月 | 立即购买 |
| STARTER | 1核 | 2GB | 40GB | 1000GB | 1Gbps | $39.90/月 | 立即购买 |
| MINI | 2核 | 2GB | 60GB | 2000GB | 1Gbps | $79.90/月 | 立即购买 |
| MICRO | 4核 | 4GB | 80GB | 4000GB | 1Gbps | $159.90/月 | 立即购买 |
| MEDIUM | 4核 | 8GB | 160GB | 5000GB | 1Gbps | $259.90/月 | 立即购买 |
| LARGE | 8核 | 16GB | 320GB | 8000GB | 1Gbps | $429.90/月 | 立即购买 |
| GIANT | 8核 | 24GB | 640GB | 15000GB | 1Gbps | $799.90/月 | 立即购买 |
| 套餐 | CPU | 内存 | 硬盘 | 流量 | 带宽 | 价格 | 购买 |
|---|---|---|---|---|---|---|---|
| TINY | 1核 | 1GB | 20GB | 1000GB | 1Gbps | $25.90/月 | 立即购买 |
| STARTER | 1核 | 2GB | 40GB | 2000GB | 2Gbps | $55.90/月 | 立即购买 |
| MINI | 2核 | 2GB | 60GB | 3000GB | 2Gbps | $85.90/月 | 立即购买 |
| MICRO | 4核 | 4GB | 80GB | 4000GB | 4Gbps | $119.90/月 | 立即购买 |
| MEDIUM | 4核 | 8GB | 160GB | 6000GB | 4Gbps | $179.90/月 | 立即购买 |
| LARGE | 8核 | 16GB | 320GB | 12000GB | 4Gbps | $369.90/月 | 立即购买 |
| GIANT | 8核 | 24GB | 640GB | 24000GB | 4Gbps | $749.90/月 | 立即购买 |
| 套餐 | CPU | 内存 | 硬盘 | 流量 | 价格 | 购买 |
|---|---|---|---|---|---|---|
| WEE | 1核 | 1GB | 20GB | 1000GB | $36.90/年 | 立即购买 |
| TINY | 1核 | 1GB | 20GB | 2000GB | $6.90/月 | 立即购买 |
| STARTER | 1核 | 2GB | 40GB | 4000GB | $12.90/月 | 立即购买 |
| MINI | 2核 | 2GB | 60GB | 8000GB | $21.90/月 | 立即购买 |
| MICRO | 4核 | 4GB | 80GB | 16000GB | $32.90/月 | 立即购买 |
| MEDIUM | 4核 | 8GB | 160GB | 32000GB | $49.90/月 | 立即购买 |
| LARGE | 8核 | 16GB | 320GB | 64000GB | $99.90/月 | 立即购买 |
| GIANT | 8核 | 24GB | 640GB | 128000GB | $199.90/月 | 立即购买 |
套餐选购建议:
- 追求最低延迟、对国内速度要求高 → 香港/东京 Premium(CN2 GIA)
- 性价比优先、联通移动用户 → 洛杉矶 Eyeball(AS9929 + CMIN2)
- 建站/落地/国际业务 → 各地区 Tier 1 系列
- 预算有限先试水 → T1 WEE 系列,年付 $36.9 起步
问题 1:Permission denied (publickey)
检查以下几点:
- 服务器上
authorized_keys文件权限是否为600 ~/.ssh目录权限是否为700sshd_config中是否开启了PubkeyAuthentication yes
问题 2:私钥文件权限太宽松
bash chmod 600 ~/.ssh/id_ed25519
私钥文件权限必须是 600,权限太宽松 SSH 会直接拒绝使用。
问题 3:连接时还是要求输密码
用 -v 参数查看详细日志,判断是密钥没被接受还是其他问题:
bash ssh -v root@你的服务器IP
问题 4:在 DMIT 上配置完密钥后仍无法连接
DMIT 要求在购买时或控制面板里提前录入公钥,而不是通过 ssh-copy-id 上传。如果已有服务器在跑,可以通过 VNC 控制台进入修改 authorized_keys。
整个流程其实就四件事:
- 本地运行
ssh-keygen -t ed25519生成密钥对 - 把
id_ed25519.pub里的内容上传到服务器 - 确认权限设置正确(
.ssh是 700,authorized_keys是 600) - 用
ssh -i测试,确认能免密登录
搞定这四步,你的 VPS 安全性就上了一个台阶。配合 DMIT 这类默认强制密钥登录的服务商,从买下来的第一天就是安全的姿势,省掉不少烦恼。