![禁用受信任地址的两步 SSH 身份验证](https://linux22.com/image/654603/%E7%A6%81%E7%94%A8%E5%8F%97%E4%BF%A1%E4%BB%BB%E5%9C%B0%E5%9D%80%E7%9A%84%E4%B8%A4%E6%AD%A5%20SSH%20%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81.png)
我使用 libpam-google-authenticator 进行两步 SSH 身份验证,这很棒,为我的服务器增加了另一层安全性。我的问题是:是否可以针对某些地址禁用此功能。例如,当我从我的开发设备(静态 IP)或服务器本地主机连接时。
这会很棒,因为我可以通过我的服务器的互联网连接进行两步验证的安全性访问,但仍然可以在受信任的主机上轻松登录用户名和密码。
答案1
您可以为本地/受信任的主机设置基于密钥的身份验证,并在其他地方使用双因素 google-authenticator。
我也对所有来自外部主机的 ssh 登录使用 google-authenticator 模块。但是,对于受信任的本地主机,我设置了基于密钥的身份验证,以绕过 google 身份验证,因此登录起来容易得多……更不用说,本地主机上的所有自动化脚本(使用 rsync、scp 等)都可以在没有交互式验证码的情况下运行。
要设置特定主机以使用基于密钥的身份验证,首先,将您的公钥附加到远程 sshd 服务器上的 ~/.ssh/authorized_keys,并将以下内容添加到您的 sshd_config(假设您本地的受信任主机位于 192.168.1.0)并重新启动 sshd。
Match Address 192.168.1.0/24
PasswordAuthentication no