如何设置我的 SSH 服务器以便身份验证方法取决于客户端 IP 地址?
internal network -> password login enabled
request from WAN -> only passkeys enabled
我会避免为每个用户设置两个帐户(内部/外部)并相应地重写配置文件。
答案1
查看 的手册页sshd_config
。如果您拥有较新版本的 OpenSSH,则可以使用Match
以下指令:
Match Address 192.168.0.0/24
PasswordAuthentication yes
Match Address 10.0.0.0/24
PasswordAuthentication no
但是正如 ErikA 所说,无论如何只需使用 keyauth 并且不要让别人知道你可以这样做 ;-)
答案2
为什么要允许密码验证?
如果是同一组用户从内部和外部进行连接,那么他们已经知道如何设置密钥认证了。
老实说,当正确设置(密码保护的私钥,使用 ssh-agent 的客户端)时,密钥认证比每次都必须输入密码要容易得多。