我的公司非常重视安全性并愿意转向 SSH 密钥对。用户可以独立生成他们的 SSH 密钥对,我担心他们是否设置了密码。我可以强制执行吗?使用 ssh-keygen 签名有帮助吗?
如何强制 SSH 私钥具有密码?
信息安全
验证
公钥基础设施
SSH
打开sh
2021-09-11 14:32:21
2个回答
不可以。您不能在服务器端强制密钥具有密码。密钥始终在客户端,服务器只看到挑战和公钥的签名。证书(又名签名密钥)也无济于事,因为公钥已签名。
如果您想在安全方面采用这种方式,我建议您查看某种两因素身份验证或智能卡。
由于我们无法在服务器端强制使用密码短语,因此我们必须通过对用户的教育来降低风险。
私有 ssh 密钥文件是敏感数据,如果管理不当,可能会导致系统受损。确保使用密码的一种方法是正式策略,对发现未加密的密钥进行惩罚。但是正确使用 ssh-keys 并不难或不方便。
每天使用ssh-agent
和在轮班期间提供与无密码登录相同的便利:ssh-add
eval $(ssh-agent -s)
ssh-add
注意:Gnome Keyring 可以为您存储密码。
注意:在 Mac 上,您甚至可以将密码短语存储在钥匙串中:
ssh-add -K
一个额外的控制是使用更新的文件格式和密钥类型,这将为对文件的暴力攻击提供保护,如果密钥具有密码短语,则需要几秒钟才能在 ssh-agent 中加载(暴力破解需要永远)。
ssh-keygen -t ed25519 -a 500
其它你可能感兴趣的问题