SSH Key(公钥/私钥认证)是现代服务器运维中最常用、最安全、最舒服的一种登录方式。
配置成功后,你可以:
- 登录 VPS 不再输入密码
- VS Code Remote-SSH 一键进入开发环境
- 自动化任务(如 git 拉取、自动部署)不再受密码阻碍
- 多设备管理账号更方便、安全可控
本文将以「从零开始」的方式,讲清楚 SSH Key 的 原理 + 生成 + 配置 + 多设备实践 + VS Code 配置,适合博客收藏作为长期参考。
一、SSH Key 是什么?为什么要用它?
SSH Key 是通过 一对密钥文件(私钥 + 公钥) 来验证身份的。
- 私钥(private key):保存在你自己电脑上,不能泄露
- 公钥(public key):放到服务器上,允许对应私钥持有者访问
验证时不会传输私钥,而是通过加密握手确认“你确实拥有私钥”。
相比传统密码登录:
| 登录方式 | 优点 | 缺点 |
|---|---|---|
| 密码 | 简单 | 易被爆破、不适合自动化、VS Code 会不断弹密码 |
| SSH Key | 安全、免密、自动化支持强、不可爆破、体验顺滑 | 需要配置一次 |
一句话:
SSH Key=更安全 + 更省心 + 更专业
尤其适合 WordPress 开发、插件开发、自动部署、Python 上机任务等场景。
二、生成 SSH Key(在本地电脑上执行)
在你的 本地电脑(不是 VPS)执行:
ssh-keygen -t ed25519 -C "my-laptop"一路回车即可。
生成的文件通常在:
~/.ssh/id_ed25519 # 私钥(必须保密)
~/.ssh/id_ed25519.pub # 公钥(可以发给 VPS)Ed25519 是新一代加密算法,比 RSA 更安全、速度更快。
三、把公钥部署到 VPS
SSH 到你的 VPS(最后一次手动输密码):
ssh root@你的VPSIP创建 .ssh 目录:
mkdir -p ~/.ssh
chmod 700 ~/.ssh编辑授权文件:
nano ~/.ssh/authorized_keys然后把你本地电脑里的公钥复制进去:
cat ~/.ssh/id_ed25519.pub粘贴到 VPS 的 authorized_keys 内,保存退出。
最后设定正确权限:
chmod 600 ~/.ssh/authorized_keys完成!
四、在本地配置 ssh config(推荐)
让 SSH 自动使用你的私钥。
编辑:
~/.ssh/config新增:
Host my-vps
HostName 你的VPSIP
User root
IdentityFile ~/.ssh/id_ed25519之后你可以直接:
ssh my-vps即可免密登录。
五、VS Code Remote-SSH 免密登录
开启 VS Code → 安装扩展:
Remote - SSH
左下角绿色图标 → Connect to Host… → 选 my-vps
如果 SSH Key 配置正确:
- 不会再要求你输入密码
- 打开目录也不会提示密码
- 切换文件夹 VS Code 不会重新询问认证
- 整个远程开发体验与本地几乎一样流畅
六、多设备访问(A/B/C 多台电脑如何共享登录?)
SSH Key 是按“设备”而不是“账号”授权的。
也就是说:
- 你的 A、B 两台电脑各自生成自己的 key
- VPS 上的
authorized_keys可以同时记录多个公钥 - 哪台电脑有私钥、VPS 有对应的公钥 → 就能登录
例如你的 authorized_keys 会长这样:
ssh-ed25519 AAAAC3... my-laptop
ssh-ed25519 AAAAC3... office-computer
ssh-ed25519 AAAAC3... home-desktop如果某台电脑丢了?
只需从 authorized_keys 删除对应那一行即可,其他电脑不受影响。
七、进一步提升安全性(可选)
可启用:
禁用密码登录,仅允许 SSH Key
/etc/ssh/sshd_config:PLAINTEXTPasswordAuthentication no只开放特定 IP 登录(更强安全限制)
多用户独立管理各自的 SSH key
适合生产环境使用。
八、小结
SSH Key 登录是每个开发者、运维人员都应该掌握的基础技能。
它的核心优势:
- 不再输入密码
- 更安全
- 适合自动化任务
- 与 VS Code Remote-SSH 完美结合
- 能同时管理多台电脑登录同一 VPS
你未来如果做:
- WordPress 插件开发
- Python 数据脚本
- CI/CD 自动部署
- GitHub Actions 自动更新
- 多台机器联合开发
SSH Key 都可以成为你的基础设施。
