窗临窗手记ERIC’S NOTES
技术笔记

SSH 密钥的两部分,应该分别放在哪里

用简单的边界理解公钥、私钥与主机指纹,让远程登录更有条理。

密钥登录减少了反复输入账号密码的麻烦,也引入了新的保管责任。先分清公钥、私钥和服务器主机密钥各自的用途,再讨论文件放在哪里,理解会容易一些。

公钥负责登记,私钥负责证明

一对 SSH 用户密钥包含公钥和私钥。通常把公钥登记到服务器上相应用户的 authorized_keys 文件中,把私钥留在发起连接的客户端。登录过程用来证明客户端持有对应私钥,并不需要把私钥上传到服务器。

文件名可以自定义,常见的 .pub 后缀用于标识公钥。不要仅凭名字判断文件性质,还应确认文件内容和来源。尤其不要把私钥当成安装说明的一部分放进公开仓库。

权限也是保管的一部分

在类 Unix 系统中,私钥应限制为只有所属用户可读写;SSH 也可能拒绝使用权限过宽的私钥。私钥可以设置口令,在使用便利与本地文件泄露的风险之间多加一道保护。

如果有多台设备或多个用途,可以使用不同的密钥,并在公钥备注中写清设备与用途。这样撤销某一台设备的访问时,可以准确找到对应条目。

服务器身份需要另外确认

首次连接时看到的主机指纹,用于识别服务器身份,与用户自己的登录密钥不是同一个概念。应通过可信渠道核对指纹,而不是把所有提示都当作可以忽略的步骤。

主机指纹变化可能来自系统重装、主机密钥轮换,也可能说明连到了另一台机器。遇到变化时先核实原因,再更新本地记录。

泄露后的重点是撤销旧权限

一旦私钥出现在不应出现的位置,应把它视为可能已泄露。处理的重点是生成新密钥、确认新连接可用,再从服务器授权列表中撤销旧公钥,并检查相关登录记录。只删除本地文件并不会取消服务器上的授权。

把密钥当作有生命周期的访问凭据:创建时写清用途,使用时限制范围,设备停用或凭据泄露时及时撤销。清楚的边界比复杂的文件名更有价值。

— 本篇完 —
把理解写下来,也给下一次思考留下起点。