Я пытаюсь запустить SSH-сервер под управлением Ubuntu 10.04, чтобы разрешить вход по паролю только при выходе из локальной сети. Для всех других пользователей, особенно тех, которые входят в систему из Интернета через брандмауэр, я хочу принудительно использовать аутентификацию на основе ключей. Я погуглил и нашел следующее.
Вот что я изменил /etc/ssh/sshd_config
:
PasswordAuthentication yes
Match Address 192.168.5.0/24
PasswordAuthentication yes
После этого я вхожу в систему с другого компьютера с адресом 192.168.5. адрес, но он не позволит мне войти из-за отсутствия publicKey: Permission denied (publickey).
Это должно помочь:
PubkeyAuthentication yes
PasswordAuthentication no
Match Address 192.168.5.* PasswordAuthentication yes
Первые две строки по умолчанию будут включать аутентификацию с открытым ключом. Последняя строка заменит две другие строки для согласованной сети (192.168.5.0/24).
Перевод строки после условия соответствия имеет значение. Это должно работать:
PasswordAuthentication no
Match Address 192.168.5.0/24
PasswordAuthentication yes
РЕДАКТИРОВАТЬ: я удивлен, что другой ответ сработал! У меня это не сработало. Итак, таким образом вы сможете использовать сетевую маску CIDR.