在 Ubuntu 22.04 机器上,我试图禁用密码验证。为了实现这一点,我/etc/ssh/sshd_config
已从
...
# PasswordAuthentication yes
...
到
...
PasswordAuthentication no
...
然后重新sshd
启动sudo systemctl restart ssh
。
不过,密码验证仍然有效。
我这里遗漏了什么吗?
在机器上,它已经安装好了OpenSSH_8.9p1 Ubuntu-3ubuntu0.1, OpenSSL 3.0.2 15 Mar 2022
。
答案1
我将首先检查您是否定义了包含目录(或文件),例如:
/etc/sshd_config.d/
有可能存在一个覆盖 /etc/ssh/sshd_config 的包含文件
接下来,查看 systemctl 正在做什么。查看/etc/sysconfig/sshd
并/etc/sysconfig/sshd-permitrootlogin
根据需要调整它们。这些是 RHEL 8 上的路径/文件名,我认为 Ubuntu 22.04 也是如此。
我还会检查 ssh 客户端。ssh 命令行选项-o PreferredAuthentications=password
可能会覆盖服务器首选项。检查客户端~/.ssh/config
文件中是否存在类似内容,或者如果使用服务器的客户端(到本地主机),则可能使用 /etc/ssh/ssh_config。
答案2
不确定我之前是否错过了它,或者它是否是新的。现在 /etc/ssh 有一个目录sshd_配置.d!我修复它的方法是在该目录下的 conf 文件中设置 PasswordAuthentication no!
我以为 RH 使用 sshd 而 ubuntu 使用 ssh(如 sudo systemctl restart ssh)!