根据 IP 地址更改 SSH 身份验证方法

ziu*_*ziu 2 ssh ip authentication

如何设置我的 SSH 服务器,以便身份验证方法取决于客户端 IP 地址?

internal network -> password login enabled
request from WAN -> only passkeys enabled
Run Code Online (Sandbox Code Playgroud)

我会避免为每个用户设置两个帐户(内部/外部)并相应地重写配置文件。

EEA*_*EAA 6

为什么要允许密码验证?

如果是从内部和外部连接的同一组用户,那么他们就已经知道如何设置密钥身份验证。

老实说,如果设置正确(受密码保护的私钥,客户端使用 ssh-agent),密钥身份验证比每次都必须输入密码更容易使用。


Jam*_*man 6

Have a look at the man page for sshd_config. If you have a reasonably up-to-date version of OpenSSH you can use Match directives:

Match Address 192.168.0.0/24
  PasswordAuthentication yes

Match Address 10.0.0.0/24
  PasswordAuthentication no
Run Code Online (Sandbox Code Playgroud)

But as ErikA says, just use keyauth anyway and don't let on that you can do this ;-)