禁用 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的主要内容,如果未能解决你的问题,请参考以下文章