Отключить аутентификацию по паролю SSH на определенном интерфейсе

Отключить аутентификацию по паролю SSH на определенном интерфейсе

У меня есть маршрутизатор OpenWrt, я хочу отключить аутентификацию по паролю на SSH, чтобы можно было аутентифицироваться только с помощью ключей. Это легко достигается следующим образом:гидОднако в документации я хочу отключить аутентификацию по паролю только на интерфейсе WAN. Возможно ли это?

решение1

Этот ответ относится к OpenSSH. OpenWRT включает Dropbear по умолчанию, поэтому вам нужно будет заменить его, как указаноэта ссылка(по сути, установить openssh-serverи отключить dropbear).

С OpenSSH то, что вам нужно, возможно осуществить с помощью двух возможных механизмов:

  1. Отдельные sshdконфигурации для интерфейсов LAN и WAN. Это будет работать хорошо только если у вас статический WAN IP (невозможно указать sshdпрослушивать определенный интерфейс, только определенный IP).
  2. Разрешите аутентификацию по паролю только для клиентов в вашей локальной сети.

Опция 1:

В файле конфигурации локальной сети (например /etc/ssh/sshd_config, файле по умолчанию) у вас будет что-то вроде:

PasswordAuthentication yes
Listen 192.168.1.1:22

В файле конфигурации WAN (например /etc/ssh/sshd_config_wan,:

PasswordAuthentication no
Listen 10.1.1.1:22    

В приведенном выше примере 192.168.1.1 — это ваш IP-адрес интерфейса LAN, 10.1.1.1 — ваш IP-адрес WAN, а в обоих случаях 22 — порт для прослушивания. Вы можете указать файл конфигурации для загрузки, используя опцию -f. sshdВам нужно будет скопировать сценарий init по умолчанию в новый и изменить его для вызова sshdс помощью -f /etc/ssh/sshd_config_wan.

Вариант 2:

В /etc/ssh/sshd_config, поместите это вконецфайла:

PasswordAuthentication no

Match address 192.168.1.0/24
    PasswordAuthentication yes

Здесь вы отключаете аутентификацию по паролю, за исключением адресов в вашей локальной сети (здесь предполагается, что это 192.168.1.0/24).

решение2

Вы можете запустить два экземпляра SSH-сервера с разными конфигурациями, каждый из которых будет прослушивать отдельный интерфейс.

Связанный контент