首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制使用SSH密钥密码?

强制使用SSH密钥密码?
EN

Server Fault用户
提问于 2009-11-08 09:44:38
回答 6查看 9.7K关注 0票数 10

我正在考虑删除SSH的基于密码的登录。但是,我不想允许无密码的ssh密钥,因为那样会更糟糕。

如何确保只有有密码的SSH密钥才能连接?

如果不能这样做,是否有其他选择,例如集中管理SSH密钥生成,以及阻止用户生成和/或使用自己的密钥?大概是PKI吧。

EN

回答 6

Server Fault用户

发布于 2009-11-08 10:49:34

可以在私钥上设置的密码与SSH服务器或与其连接无关。将密码设置为私钥只是密钥所有者为防止第三方访问其远程外壳而采取的一种安全措施,以防私钥被盗。

不幸的是,您不能强迫用户用密码保护他们的私钥。有时,需要不受保护的私钥才能自动访问远程SSH服务器。对于这种情况,我强烈推荐的一个好习惯是建议用户散列known_hosts文件(存储在~/..ssh/知名_host),该文件使用以下命令保存有关用户连接的远程主机的信息:

代码语言:javascript
复制
ssh-keygen -H -f ~/.ssh/known_hosts

这样,即使第三方访问了不受保护的私钥,也很难确定该密钥对哪个远程主机有效。当然,清除shell历史记录是必须的,以使此技术具有任何价值。

另外,您应该始终记住的另一件事是,不允许root用户通过在SSH服务器的配置(Sshd_config)中添加以下内容远程登录:

代码语言:javascript
复制
PermitRootLogin no

另一方面,如果要阻止用户使用密钥进行身份验证,但使用密码,则应将以下内容添加到sshd_config中:

代码语言:javascript
复制
PasswordAuthentication yes
PubkeyAuthentication no
票数 23
EN

Server Fault用户

发布于 2009-11-08 09:47:10

这不可能。

用户可以对他们的密钥文件做任何事情,转换为无密码,即使您生成它,例如。

票数 8
EN

Server Fault用户

发布于 2009-11-08 09:48:02

你不能。一旦用户拥有他们拥有的关键数据,你就不能阻止他们删除密码。您需要寻找其他进行身份验证的方法。

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/82649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档