Назад | Перейти на главную страницу

Разрешить парольную аутентификацию на SSH-сервере только из внутренней сети

У меня есть сервер OpenSSH 5.9p1, работающий на Ubuntu Precise 12.04, который принимает соединения как из внутренней сети, так и из Интернета. Я хотел бы потребовать аутентификацию с открытым ключом для подключений из Интернета, но принять аутентификацию с открытым ключом или паролем для подключений из внутренней сети. Могу ли я настроить OpenSSH для этого?

В Match директива в /etc/ssh/sshd_config позволяет выборочно применять директивы конфигурации. Одним из доступных критериев соответствия является адрес источника соединения, поэтому его можно использовать для реализации того, что вы хотите. Вы можете отключить аутентификацию по паролю по умолчанию, а затем включить ее для подключений из диапазонов IP-адресов внутренней сети. (Обратите внимание, что вы также хотите отключить ChallengeResponseAuthentication для предотвращения использования паролей.) В этом примере разрешена аутентификация по паролю из всех диапазонов частных IP-адресов RFC1918. Увидеть sshd_config справочная страница Больше подробностей.

PasswordAuthentication no
ChallengeResponseAuthentication no

Match Address 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
    PasswordAuthentication yes

Обратите внимание, что блок Match следует добавить в конец файла, иначе все, что следует за ним, будет сопоставлено до следующего блока Match. Неправильное расположение блока Match может привести к невозможности подключения.