禁用 SSH 的密码身份验证无法按预期工作 Ubuntu 14.04 LTS

Posted

技术标签:

【中文标题】禁用 SSH 的密码身份验证无法按预期工作 Ubuntu 14.04 LTS【英文标题】:Disabling password authentication for SSH doesn't work as expected Ubuntu 14.04 LTS 【发布时间】:2014-07-10 08:28:02 【问题描述】:

我想确保通过 SSH 访问计算机的唯一方法是客户端的密钥是否已添加到服务器上的 authorized_keys 文件中。

为此,我编辑/etc/ssh/sshd_config 并启用以下选项

ChallengeResponseAuthentication no
PasswordAuthentication no
PubkeyAuthentication yes
UsePAM no

之后,我重新启动sshd 服务

sudo /etc/init.d/ssh restart

但是,当我尝试从其密钥未保存在服务器的授权密钥文件中的客户端 ssh 进入服务器时,系统会提示我输入密码。

编辑:我已经弄清楚了问题所在,但我将把这个问题留在这里,以防它对其他人有用。

发生的情况是,当使用不在authorized_keys 文件中的密钥从客户端连接时,服务器会要求输入密码,但无论输入什么密码,都会被拒绝。我认为这是为了让攻击者很难理解 sshd 是如何配置的。

【问题讨论】:

我注意到在某些 14.04 中,不要使用 init.d 重新启动,而是尝试使用 sudo service ssh restart。 属于Server Fault SE。 @ADRENALIN:“同样,这是我第一次遇到这个问题。”什么问题? OP 在他的编辑中解释说,使用未经授权的客户端密钥进行密码验证将失败。 “所有以前的 Ubuntu 版本都很好。”请定义“好”;按照今天的标准,也许原始行为被认为是不安全的,正如 OP 的编辑中所解释的那样。 @CCG:请create an answer to your own question,将此问题从未回答的问题列表中删除。如果你快点,你甚至可能会获得那笔赏金! ;) 【参考方案1】:

我上面描述的行为是 sshd 的预期行为。无论输入什么密码,都不会被接受。

【讨论】:

【参考方案2】:

为了帮助任何发现此问题并且似乎仍然能够使用 root 和密码登录的人,我发现重新启动 VPS 似乎可以正确重新配置所有内容。

【讨论】:

以上是关于禁用 SSH 的密码身份验证无法按预期工作 Ubuntu 14.04 LTS的主要内容,如果未能解决你的问题,请参考以下文章

模型驱动形式:验证在 Angular 2 中无法按预期工作

text 如何禁用SSH的密码身份验证

text 如何禁用SSH的密码身份验证

使用密码短语(如 SSH 密钥)存储 Github / Gitea 身份验证令牌

禁用 SSH 的密码验证 [关闭]

身份验证状态持久性未按预期工作 ReactJS