SSH 密钥多了管不过来?密钥管理实战

从一台 VPS 到十台,从一台电脑到三台设备,SSH 密钥很快就会乱成一锅粥。小够分享密钥管理的实战经验:一个设备一个密钥、config 文件分组管理、离职交接与密钥轮换、丢了设备的应急流程。

我是小够。密钥登录大家都会配了,但很快会遇到新问题:电脑有两台、VPS 有五台,哪个密钥对应哪台?离职交接、设备丢失时怎么办?今天讲密钥的管理——配密钥是入门,管好密钥才是进阶。

原则一:一个设备一个密钥

别所有设备共用同一个私钥。笔记本一个、台式机一个、手机 Termius 一个。这样某个设备丢了,只吊销它对应的公钥,其他设备不受影响。生成时用 -C 备注清楚:

ssh-keygen -t ed25519 -C "macbook-2025"
ssh-keygen -t ed25519 -C "home-pc-2025"

文件名也别都叫 id_ed25519,用 -f 指定:~/.ssh/id_macbook、~/.ssh/id_homepc,一目了然。

原则二:config 文件是总管

~/.ssh/config 按主机分组,每个 Host 指定用哪个密钥:

Host 博客VPS
    HostName 1.2.3.4
    User xiaogou
    Port 2222
    IdentityFile ~/.ssh/id_macbook

Host 测试机
    HostName 5.6.7.8
    User ubuntu
    IdentityFile ~/.ssh/id_homepc

之后 ssh 博客VPS 就行,不用记 IP、端口、密钥。机器一多,这个文件的价值就体现出来了。

原则三:公钥清单要留档

每台服务器的 ~/.ssh/authorized_keys 里有哪些公钥,心里要有数。定期检查:

cat ~/.ssh/authorized_keys | cut -d' ' -f3

注释字段(第三段)就是你当初 -C 写的名字,一眼看出每个密钥属于哪台设备。来历不明的密钥直接删——宁可误删再加,不可留着可疑的。

密钥轮换:一年一次

密钥不像密码需要频繁换,但建议一年轮换一次,或者在以下情况立即轮换:设备丢失/被盗、怀疑私钥泄露、人员变动。流程:新设备生成新密钥 → 公钥追加到服务器 → 测试新密钥能登录 → 删除旧公钥。一气呵成,别拖。

设备丢了怎么办

  1. 第一时间从所有服务器的 authorized_keys 里删掉该设备的公钥;
  2. 如果该设备还存了服务器密码(不应该,但以防万一),改密码;
  3. 检查 auth.log / last 有没有异常登录记录;
  4. 重新生成新密钥对给新设备。

这也是"一个设备一个密钥"的原因:丢一台,只吊销一个,损失可控。

私钥的存放

私钥文件权限必须是 600,ssh 会拒绝权限过大的私钥。别把私钥放网盘、别发微信、别截图。备份私钥用加密 U 盘或密码管理器,别明文存。

ssh-agent:不用每次都输 passphrase

密钥设了 passphrase 每次都要输?用 ssh-agent 缓存:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_macbook

输一次 passphrase,之后这个终端会话里都不用再输。macOS 更省心,ssh-add --apple-use-keychain 存进钥匙串,开机自动加载。Windows 的 OpenSSH 自带 ssh-agent 服务,设成自动启动就行。

手机端密钥怎么管

手机上用 Termius、JuiceSSH 这类 App,连 VPS 应急很方便。密钥管理原则不变:手机单独生成一个密钥对(别把电脑的私钥拷过去),公钥加到服务器,手机丢了只吊销这一个。App 里一般支持导入私钥文件,操作一次就行。

旧密钥退役流程

轮换不是"加上新的就完事",旧的要干净下线:

  1. 新密钥生成、公钥追加到所有服务器;
  2. 逐台测试新密钥能登录;
  3. 从所有 authorized_keys 里删除旧公钥;
  4. 本地删除旧私钥文件(或归档到加密存储);
  5. 在你的密钥清单文档里更新记录。

第 3 步最容易漏:很多人加了新的,旧的一直躺在服务器上,等于轮换了个寂寞。清单文档的作用就在这里——每台服务器有哪些密钥,一目了然。

密钥清单文档长什么样

不用复杂,一个表格就行:

设备密钥备注创建时间状态
MacBookmacbook-20252025-01在用
台式机home-pc-20252025-01在用
旧手机phone-20242024-06已吊销

存在密码管理器或加密笔记里。轮换、吊销、审计,全靠这张表。

小够的总结:密钥管理的本质是"可追溯、可吊销"。每个密钥都知道是谁的、哪台设备的,丢了能单独作废,这就够了。个人用户做到"一设备一密钥 + config 管理 + 一年一换",已经超过 90% 的人了。