Как я могу настроить свой SSH-сервер так, чтобы метод аутентификации зависел от IP-адреса клиента?
internal network -> password login enabled
request from WAN -> only passkeys enabled
Я бы не стал настраивать две учетные записи (внутреннюю / внешнюю) для каждого пользователя и соответственно переписывать файл конфигурации.
Зачем вообще разрешать аутентификацию по паролю?
Если это одна и та же группа пользователей, которая будет подключаться изнутри и снаружи, то они уже выяснили, как настроить ключевую аутентификацию.
Честно говоря, при правильной настройке (закрытые ключи, защищенные парольной фразой, клиент, использующий ssh-agent), ключ аутентификации намного проще в использовании, чем необходимость вводить пароль каждый раз.
Взгляните на страницу руководства для sshd_config
. Если у вас достаточно свежая версия OpenSSH, вы можете использовать Match
директивы:
Match Address 192.168.0.0/24
PasswordAuthentication yes
Match Address 10.0.0.0/24
PasswordAuthentication no
Но, как говорит ErikA, просто используйте keyauth в любом случае и не позволяйте, чтобы вы могли это сделать ;-)