我正在考虑删除SSH的基于密码的登录。但是,我不想允许无密码的ssh密钥,因为那样会更糟糕。
如何确保只有有密码的SSH密钥才能连接?
如果不能这样做,是否有其他选择,例如集中管理SSH密钥生成,以及阻止用户生成和/或使用自己的密钥?大概是PKI吧。
发布于 2009-11-08 10:49:34
可以在私钥上设置的密码与SSH服务器或与其连接无关。将密码设置为私钥只是密钥所有者为防止第三方访问其远程外壳而采取的一种安全措施,以防私钥被盗。
不幸的是,您不能强迫用户用密码保护他们的私钥。有时,需要不受保护的私钥才能自动访问远程SSH服务器。对于这种情况,我强烈推荐的一个好习惯是建议用户散列known_hosts文件(存储在~/..ssh/知名_host),该文件使用以下命令保存有关用户连接的远程主机的信息:
ssh-keygen -H -f ~/.ssh/known_hosts这样,即使第三方访问了不受保护的私钥,也很难确定该密钥对哪个远程主机有效。当然,清除shell历史记录是必须的,以使此技术具有任何价值。
另外,您应该始终记住的另一件事是,不允许root用户通过在SSH服务器的配置(Sshd_config)中添加以下内容远程登录:
PermitRootLogin no另一方面,如果要阻止用户使用密钥进行身份验证,但使用密码,则应将以下内容添加到sshd_config中:
PasswordAuthentication yes
PubkeyAuthentication no发布于 2009-11-08 09:47:10
这不可能。
用户可以对他们的密钥文件做任何事情,转换为无密码,即使您生成它,例如。
发布于 2009-11-08 09:48:02
你不能。一旦用户拥有他们拥有的关键数据,你就不能阻止他们删除密码。您需要寻找其他进行身份验证的方法。
https://serverfault.com/questions/82649
复制相似问题