我正在计算机之间切换。
在旧的一台上,我有 SSH 密钥(到远程服务器、AWS 等......)
将.ssh
文件夹复制到新计算机是否被认为是一个好的做法?
如果不是,正确的处理方法是什么?
答案1
是的,如果您更改访问服务器的计算机,只需将~/.ssh
目录从旧计算机复制到新计算机即可。没有必要(而且很麻烦)为每个服务器生成新的密钥对。您只需要新机器上的私钥。
请记住,其中~/.ssh
包含敏感数据(私钥),因此请通过安全介质(例如 SCP 或 USB 驱动器;而不是通过电子邮件!)传输它。另外,请务必处理掉旧机器上存储的私钥。
答案2
~/.ssh
不 - 将文件夹复制到新计算机不被视为最佳实践。相反,在您的新计算机上创建您的~/.ssh
文件夹从头开始使用:
$ ssh-keygen
接下来是:
$ ssh-copy-id username@remote_host
将您的公钥复制到每个 ssh 服务器主机。
有一个很好的教程,涵盖了一些罕见的意外情况。一旦您准备好永久停用旧计算机,请务必删除其文件夹的内容~/.ssh
。
如果您希望将整个~/.ssh
文件夹从旧计算机复制到新计算机,可以在某些情况。只需将~/.ssh
旧机器上的整个文件夹复制到 USB 驱动器即可。完成后,将 USB 驱动器移动到新计算机,安装它,然后~/.ssh
使用命令将其内容复制到新计算机上的文件夹中cp -a
以保留适当的权限;像这样的东西:
$ cp -a /mnt/myusb/.ssh/. ~/.ssh/
答案3
我强烈地不同意Seamus的回答。是的,定期更换钥匙是一个很好的做法。将其与更换硬件的时间联系起来通常不是一个好主意。您有足够多的事情需要担心,而不会失去所有远程访问权限。除非您还允许基于密码的身份验证(这首先破坏了使用密钥对身份验证的大部分原因),否则也不可能从新计算机使用 ssh-copy-id 。
如果您管理跨国银行的服务器或启动洲际弹道导弹的代码,那么您确实需要考虑从废弃硬件中恢复密钥的风险,即使您安全地删除了文件。但对于我们其他人来说,粉碎或安全删除就足够了。