把 NetworkManager 的 VPN 配置迁移到另一台电脑
可见的设置是最难迁移的部分。用三个关于密钥与路径的问题,在插件导出、密钥文件与重新登记之间做选择。
两台机器的菜单里可能显示同一个 VPN 名称,却没有任何其他共同点。设置页面是最难迁移的部分,因为配置的真正内容分散在密钥文件、密钥环、插件和若干绝对文件路径中。三个问题决定你应该导出、复制还是重新登记。在复制任何东西之前先问这三个问题。
从真正可用的那份配置开始
列出连接并读取 UUID,而不是名称。nmcli connection show 会同时打印两者,而 UUID 是唯一能把可用条目与标签相同的旧导入区分开的字段。开始之前,先在源机器上重命名或删除过时的重复项,这样你复制的东西才不含糊。然后记录插件和连接类型,因为这两者决定了导出的含义。无法精确识别的配置,就是不该迁移的配置。
这一步只需一分钟。它能避免最常见的失败:搬错了配置,然后在新机器上调试。
导出,还是复制密钥文件?
当已安装的插件实现了导出时,NetworkManager 可以把某些 VPN 配置导出为文件;对 OpenVPN 来说,结果类似一份独立配置。复制原生密钥文件是另一条路:它保留所有设置,但要求目标机器上有同一个插件和获准的所有者。两者都不是普遍更好,也都不是备份。选择时要问:哪些东西必须保持一致。
导出适合搬到会运行同一插件的机器,尤其是当你想得到一份可以检查的产物时。密钥文件适合还原到权限和路径都能精确复现的同款发行版上。
配置仍然指向什么
配置导出得干净,并不意味着它自给自足。CA、客户端证书、私钥以及任何额外的 TLS 材料通常是按路径引用的独立文件,而这些路径存在于你正要离开的机器上。在传输任何东西之前,列出每一个被引用的文件。
然后决定是否应该沿用同一份凭据。另一台机器上同名文件并不等于同一个身份,有些部署反而要求重新登记。
密钥不在文件里
密码和口令可能存放在密钥文件里、用户的密钥环里,也可能哪里都没有,因为每次都会询问用户。只有第一种会随文件副本一起迁移。
在假定迁移无需留意之前,先检查源配置上的密码标志。一个被配置为询问,或把密钥交给会话代理保存的配置,到达新机器时没有任何凭据,并会 出现一次不解释原因就失败的连接尝试。应当在那里重现经过批准的密钥流程,而不是为了省事把明文密码导出到文件里。那条捷径会把迁移变成泄露。
妥善让旧副本退役
通过新设置使用目标应用,以此确认它能用,并在此之前保留旧路径可用。导入后回读端点、认证、路由和 DNS,然后连接并确认私有资源。导入后出现绿色图标并不等于验收通过。
删除本地配置并不会吊销任何东西。证书和凭据在签发方撤回之前始终有效,所以退役是向签发方另提的请求。删除旧文件、删除密钥环条目,并记录撤回了哪个身份、何时撤回。如果旧机器要转交他人,这份记录比删除更重要。