Image

知识库 → 在 Debian 12 上为 root 设置 ssh 的两因素身份验证

[虚拟服务器]
出版日期: 05.10.2023

要为 root 用户设置两因素身份验证,我们将使用 Google Authenticator。 该应用程序可在所有平台上使用,并且取决于时间。 因此,即使无法访问谷歌服务,最重要的是时间同步,然后一切都会正常工作。

在我们的示例中,我们将确保标准用户像往常一样使用密码登录 ssh,但是当尝试使用 su - 命令将权限升级到 root 用户时,首先需要密码,然后需要来自 Google 身份验证器的代码应用。

同时,我们将禁止以root用户登录ssh,以强制该用户使用双因素身份验证。

1. 让我们安装必要的软件包:

apt install libpam-google-authenticator

2. 让我们进行第一个设置:

./google-authenticator

2.1 因此,系统将提示您从应用程序输入代码,作为 google 应用程序的替代方案,您可以使用 FreeOTP

2.2 设置SSH服务:

nano /etc/ssh/sshd_config

PermitRootLogin no
UsePAM yes
ChallengeResponseAuthentication yes

让我们重新启动服务以使设置生效:

systemctl restart ssh

2.3 输入su命令的密码后设置代码请求 -

让我们添加行,使文件看起来像这样:

nano /etc/pam.d/su
...
auth       sufficient pam_rootok.so
...
auth required pam_unix.so no_warn try_first_pass
auth   required   pam_google_authenticator.so
...

3. 完成,您可以检查操作,以普通用户身份登录并尝试使用 su 命令切换到 root 后,输入密码后,系统将提示您输入应用程序中的代码。




3.1 如果您想在尝试连接 ssh 时提示输入代码,那么您需要将这些行添加到文件中:

nano /etc/pam.d/sshd
...
@include common-auth
...
auth required pam_unix.so no_warn try_first_pass
auth   required   pam_google_authenticator.so
...

如果您使用的是 root 用户,请在 ssh 设置中允许登录;如果您使用的是其他用户,请运行以下命令:

./google-authenticator

作为普通用户并按照我们为 root 用户描述的相同方式进行配置。





暂时没有评论