在 ssh 中禁用密码验证

noo*_*oob 47 ssh

我遵循了以下指南:

但是还是可以通过输入密码ssh进入机器(在win上用putty试过)

有什么建议吗?

Rad*_*anu 78

更换线路后:

#PasswordAuthentication yes
Run Code Online (Sandbox Code Playgroud)

与线:

PasswordAuthentication no
Run Code Online (Sandbox Code Playgroud)

/etc/ssh/sshd_config并保存文件后,您必须在终端中使用以下命令重新启动 ssh 服务器

sudo service ssh restart
Run Code Online (Sandbox Code Playgroud)

或者:

sudo restart ssh
Run Code Online (Sandbox Code Playgroud)

  • 在 ubuntu22 上,可能需要 `rm /etc/ssh/sshd_config.d/50-cloud-init.conf` (3认同)
  • @Hatshepsut:这是 Ubuntu 的东西,而且真烦人。在基于 Red Hat 的系统上,它是“service sshd” (2认同)

Woj*_*bas 7

在禁用 ssh 密码身份验证之前,请确保您的私钥访问按预期工作。确认后,您可以禁用密码验证。我建议进行以下更改以进一步保护服务器。

编辑文件: sudo nano /etc/ssh/sshd_config

请确保您在文件中启用了以下值:

PermitRootLogin no

PasswordAuthentication no

ChallengeResponseAuthentication no

UsePAM no
Run Code Online (Sandbox Code Playgroud)

保存文件然后重启ssh服务

sudo service ssh restart
Run Code Online (Sandbox Code Playgroud)

或者

sudo systemctl restart ssh
Run Code Online (Sandbox Code Playgroud)

编辑: 有一个问题是这些参数的作用。让我们一一浏览它们。对于最新版本,您可以随时访问手册页OpenSSH SSH 守护进程配置文件

1.PermitRootLogin

指定 root 是否可以使用 ssh(1) 登录。参数必须为“yes”、“without-password”、“forced-commands-only”或“no”。默认值为“yes”。如果此选项设置为“without-password”,则禁用密码验证为根。

如果此选项设置为“forced-commands-only”,则将允许使用公钥身份验证的 root 登录,但前提是已指定命令选项(即使通常不允许 root 登录,这对于进行远程备份也很有用)。对 root 禁用所有其他身份验证方法。

如果此选项设置为“否”,则不允许 root 登录。

不允许使用密码的“root 登录”被认为比允许它具有更强的安全性。也就是说,您根本不应该登录到 root,除非没有其他方法(sudo 等)有效。

2. 密码认证

指定是否允许密码认证。默认值为“是”。

基本上就是这样。如果这是“否”,则不允许您使用登录名和密码登录,但是……您可以使用其他选项绕过它,因此请继续阅读。

3. ChallengeResponseAuthentication

指定是否允许质询-响应身份验证(例如,通过 PAM)。默认值为“是”。

4.使用PAM

UsePAM 启用可插入验证模块接口。如果设置为“yes”,除了所有身份验证类型的 PAM 帐户和会话模块处理之外,这将启用使用 ChallengeResponseAuthentication 和 PasswordAuthentication 的 PAM 身份验证。

由于 PAM 质询-响应身份验证通常起到与密码身份验证相同的作用,因此您应该禁用 PasswordAuthentication 或 ChallengeResponseAuthentication。默认值为“否”。

最后,上面链接的 Ubuntu 手册中的一些信息。默认值可能会有所不同,因此如果您想保护您的服务器,我建议您明确使用设置顶部提到的那些选项。

请注意,Debian openssh-server 软件包在 /etc/ssh/sshd_config 中将几个选项设置为标准选项,这些选项不是 sshd(8) 中的默认选项。确切的列表取决于软件包是全新安装还是从各种可能的先前版本升级而来,但至少包括以下内容:

  • ChallengeResponseAuthentication 否
  • X11转发是
  • PrintMotd 否
  • AcceptEnv LANG LC_* 子系统 sftp /usr/lib/openssh/sftp-server
  • 使用PAM 是

  • 你能解释一下这些设置的作用吗? (6认同)