【问题标题】:Should I remove the public key after adding it to the server's authorized_keys file?将公钥添加到服务器的 authorized_keys 文件后,我应该删除它吗?
【发布时间】:2012-12-13 06:43:26
【问题描述】:
我已经使用公钥/私钥对设置了 ssh 登录。我的id_rsa(私钥)在我的~/.ssh 目录中,并且在同一目录中还有id_rsa.pub(公钥)。我不是安全专家,但有人告诉我将两个密钥保存在同一目录中不是一个好主意?
在我将公钥文件添加到服务器的authorized_keys 文件后删除它是一个好习惯吗?如果保留公钥没有害处,我应该将其移至其他目录吗?
我能想到的一个缺点是,如果我想通过 ssh 连接到不同的服务器,我必须重新生成公钥/私钥对。为不同的服务器生成新的公钥/私钥对是一种好习惯吗?
【问题讨论】:
标签:
linux
security
ssh
cryptography
openssh
【解决方案1】:
您的密钥的“秘密”部分需要保持安全 - 通常位于您的主目录中。公钥是要共享的,这就是它公开的全部意义。
因此,请确保您的 .ssh 目录始终受到安全保护。
公钥不是秘密的,因此虽然您可以根据需要将其删除,但这并没有太大帮助,因为任何可以读取authorized_keys 的人都可以得到它......它在全视图中。
显然,删除您的私钥意味着您必须制作一对新的私钥公钥。但只有拥有您私钥的人才能进入您的帐户 - 并且只有在该机器上的 authorized_keys 中[当然,可以从一个地方复制到另一个地方!]
总结:如果您想节省磁盘空间,请删除公钥。但这并不重要——它就在线路的另一端。
【解决方案2】:
这可能不是这个问题的相关答案,但您可以通过使用 iptables 过滤特定客户端(如果它们的 IP 保持固定)来允许 SSH 访问。因此,如果密钥被盗,您的防火墙可以帮助您。