我最近购买了一台笔记本电脑,需要从该笔记本电脑访问与台式机相同的远程主机。我想到可以将私钥文件从桌面复制到笔记本电脑,而不必~/.ssh/authorized_keys
在我要访问的所有主机上的文件中添加新密钥。所以我的问题是:
- 这有可能吗?
- 是否有任何非显而易见的安全隐患?
- 有时我会从笔记本电脑登录到台式机。如果使用相同的密钥,会引起任何问题吗?
我最近购买了一台笔记本电脑,需要从该笔记本电脑访问与台式机相同的远程主机。我想到可以将私钥文件从桌面复制到笔记本电脑,而不必~/.ssh/authorized_keys
在我要访问的所有主机上的文件中添加新密钥。所以我的问题是:
Answers:
是的,这是可能的。您的私钥不绑定到单个计算机。
不知道您所说的不明显是什么,这通常是主观的;)。如果您确保有一个非常强大的密码短语集(至少20个字符),这绝不是一个坏主意。
使用与您的桌面相同的键进行连接没有任何问题。我会在笔记本电脑上为您的密钥设置一个ssh代理,然后将该代理转发到桌面,这样您就可以在从那里访问的其他系统上使用该密钥。
在Linux系统上的ssh-agent手册页中:
ssh-agent是一个程序,用于保存用于公钥身份验证的私钥(RSA,DSA)。这个想法是ssh-agent在X会话或登录会话的开始时启动,而所有其他窗口或程序都作为ssh-agent程序的客户端启动。通过使用环境变量,可以在使用ssh(1)登录到其他计算机时找到该代理并将其自动用于身份验证。
您可以在笔记本电脑上运行它,或者是Linux / Unix上的ssh-agent程序(它是OpenSSH附带的),或者是puTTY代理程序(如果使用的是Windows)。您不需要在任何远程系统上运行的代理,它仅会将您的私钥保存在本地系统的内存中,因此您只需输入一次密码即可将密钥加载到代理中。
代理转发是ssh客户端(ssh
或腻子)的一项功能,该功能只是将代理通过ssh连接持久保存到其他系统。
我曾经在所有机器上使用一个私钥(其中有些我仅是用户,而不是管理员),但是最近更改了它。它只有一个密钥,但意味着如果您需要撤销密钥(如果它已被盗用),那么您将需要在所有计算机上对其进行更改。
当然,如果攻击者可以访问并能够通过SSH进入另一台计算机,则他们可以从该计算机获取密钥,依此类推。但是,这让我感到更加安全,知道我只能撤消一把钥匙并将其锁定。但这确实意味着我需要从authorized_keys文件中删除密钥。