将我的 SSH 公钥用于工作是否安全?

Naf*_*Kay 65 security ssh key-authentication

我目前为许多组织远程工作,这些组织需要我定期访问他们的服务器以进行维护和升级。将我的 RSA 公共 SSH 密钥添加到.ssh/authorized_keys文件中以允许我更快地登录/无需查找密码是否安全?我假设不可能从公共密钥生成私钥,但我的假设是否正确?

更进一步,将我的 RSA 公钥内容发布到互联网上会不会有任何安全风险?我知道如果我的私钥被获取,我会遇到很多麻烦,但除此之外,还有什么真正可能的安全威胁吗?

Gil*_*il' 79

是的,从公钥中恢复私钥是不可能的。如果可能的话,RSA 将从根本上被破解,这将是重大新闻(破解 RSA 不仅会破坏很多互联网通信安全,还会允许各种银行欺诈等)。

使用公钥而不是密码登录实际上往往会提高安全性。如果您的密码不够强,那么具有足够带宽的攻击者可能会对其进行暴力破解。如果攻击者没有您的私钥文件的副本,则 RSA 密钥实际上无法被暴力破解(1024 位密钥相当于由随机区分大小写的字母和数字组成的 160 个字符的密码) . 监视您的人可能会看到您的密码和密钥密码,但使用密钥他们也需要获取密钥。

私钥并不总是比密码更安全。如果攻击者获得了您的私钥文件的副本(例如通过窃取您的笔记本电脑或您的备份媒体),她可以尝试暴力破解密码,并且她可以高速进行,因为您无法限制率(与需要在线进行的密码猜测不同)。如果您的密码足够好并且您立即注意到被盗,您仍然有时间撤销密钥。

公钥引入了隐私暴露的一个因素:如果有人知道您使用相同的公钥登录 A 和登录 B,他们就会知道登录 A 和 B 的人是同一个人。仅拥有公钥就可以让您怀疑你也有私钥,所以你失去了一些匿名性。但这通常是次要的,特别是如果您只是将密钥存储~/.ssh在只有系统管理员(他们也知道您登录的 IP 地址)可以看到的地方。

撇开这些安全考虑不谈,私钥具有许多实际优势。您不需要经常输入密码,特别是可以运行自动脚本,一旦您在 ssh-agent 等中输入密钥,这些脚本就不会提示您。您不需要经常输入密码,因此您可以负担得起使其具有更高的熵(更长、更难输入)。您不需要经常输入密码,因此被人类观察者或相机窥探的风险较小。


Ste*_*ott 18

吉尔斯的回答一般都很好,除了

...特别是如果您只是将密钥存储在 ~/.ssh 中,只有系统管理员(也知道您登录的 IP 地址)可以看到它。

您的 ssh 密钥~/.ssh也可以被您自己帐户下运行的任何软件读取。这可能是您运行的大部分软件。所以你必须相信那个软件和那些编写它的人。

  • 出于这个原因,您应该始终使用加密的 SSH 密钥 (3认同)