跳到正文
Yukun Wang
返回

一把钥匙的信任链

编辑此页

VPS 开通后没几天,我干的第一件正经事不是装服务,而是把登录方式从密码换成密钥。密码这件事,输一次要防一次键盘记录器,防一次暴力破解;而一把 256 位的 ed25519 私钥,从数学上就不给对面包机会。

密钥比密码强在哪

密码登录的本质是「向对方证明我知道一个秘密」,于是这个秘密每次都要送过去(哪怕加密了)。密钥登录的本质是「向对方证明我持有一把钥匙」,验证过程只传签名不传钥匙本身。秘密永远不离开本机,这就是非对称加密最优雅的地方。

换完密钥顺手做了三件事:

Deploy Key:给每段关系发专属钥匙

后来服务多了, GitHub 上的仓库也多了,我遇到一个具体问题:同一把 SSH key 不能在 GitHub 上绑两个仓库。一开始觉得是限制,后来发现是设计——

GitHub 的 deploy key 就是「一把钥匙只开一扇门」:每个仓库单独生成密钥对,公钥放进那个仓库的 Settings,私钥只放在需要拉代码的机器上。博客仓库一把、学术主页一把,互不相干。哪台机器丢了,去对应仓库把那把 key 删掉就行,其他仓库毫发无损。

比「一把万能钥匙走天下」多花了两分钟,换来的是爆炸半径的控制。信任应该被切分,而不是被复用。

隧道:让内网机器借道出门

密钥还解锁了一个玩法。实验室的服务器在内网,出不了公网,但我想在校外访问它的 RStudio。办法是 SSH 反向隧道:内网机器主动向 VPS 发起连接,在 VPS 上开一个端口,把流量转发回内网。

ssh -R 10023:localhost:8787 vps

之后访问 vps:10023,流量经加密隧道直达内网的 RStudio。VPS 在这里不存任何数据,只当一面「会转发的墙」——校园数据全程不出隧道,符合只读约定的精神。

小结

密钥体系的迷人之处在于:信任可以像链条一样精确传递,每一环都能单独上锁、单独更换。密码时代「一个密码走天下」的懒,在密钥时代应该换成「每段关系一把钥匙」的洁癖。

反正生成一把 key 只要一秒钟。


编辑此页
分享这篇文章:

上一篇
Hello, World
下一篇
读文献不是往脑子里倒水