增强 SSH 登录安全性的一种方法是使用双因素身份验证 (2FA)。双重身份验证为您的服务器增加了一层额外的安全性。一般来说,您只需要您的用户名和密码即可登录您的服务器,但在应用双重身份验证后,您还需要一个身份验证码以及用户名和密码。这将显着提高服务器的安全性。
设置双因素身份验证步骤如下:
1、确保所有系统包都是最新的。
sudo apt update
sudo apt upgrade
2、同步Linux服务器时钟.
同步linux时钟,默认动态验证码在30秒内有效,由于客户端和服务器可能会存在时间差,建议先同步时钟,防止和手机时间存在时间差导致无法登录
ntpdate pool.ntp.org
3、安装 Google Authenticator PAM 模块,运行以下命令从默认的 Ubuntu 软件包存储库安装 Google Authenticator。
sudo apt install libpam-google-authenticator
4、配置SSH,运行以下命令编辑配置文件
vi /etc/pam.d/sshd
添加以下行:
auth required pam_google_authenticator.so
保存并关闭文件,然后使用systemctl命令重启ssh:
sudo systemctl restart sshd
使用vi编辑sshd_config配置文件
sudo vi /etc/ssh/sshd_config
找到 for 的行ChallengeResponseAuthentication
并将其值设置为 yes:
ChallengeResponseAuthentication yes
保存并关闭文件,然后重启sshd服务;
sudo systemctl restart sshd
5、生成 Google Authenticator QR 码
使用以下命令运行Google Authenticator:
google-authenticator
此命令的结果将引导您完成几个问题。用 回答每个问题y
。在回答之前,请通过截图复制二维码或按照谷歌网址获取更高质量的二维码。稍后您将需要此代码在您的移动设备上设置 Google 身份验证器。
在您的移动设备上,打开 Google Authenticator 应用程序,然后选择**+**以添加新帐户。然后,选择扫描二维码,可以扫描之前生成的二维码。扫描 QR 码将显示 Linux 虚拟机 (VM) 名称、用户帐户以及每 30 秒更改一次的唯一 TOTP 代码。
6、测试双因素身份验证
打开终端并通过SSH登入到你的服务器,会提示输入6位代码