Это не тестируется, но установка чего-то вроде этого в самом конце sshd_config
должен работать:
PasswordAuthentication no PubkeyAuthentication yes RSAAuthentication yes Match Address 192.168.1.0/24 PasswordAuthentication yes
В основном Вы глобально позволяете автору с открытым ключом, глобально запрещая автору пароля, и затем конкретно повторно позволяя аутентификацию по паролю для любого в 192.168.1.0/24 подсети.
Править: У Вас, вероятно, уже есть первые три строки в другом месте в Вашей конфигурации. Если Вы делаете, они не должны быть добавлены снова. Однако блок "Соответствия" должен быть в конце файла.
Кроме того, RSAAuthentication
ключевое слово характерно для SSH v1, который Вы не позволяете, правильно?
Да, я думаю так. Можно использовать директивы AllowUser и MatchUser в sshd_config файле для установки конфигурационных директив в расчете на пользователя.
Я думаю, что можно сделать эту работу путем конфигурирования sshd с PAM и автором Pubkey, и затем настроить PAM, чтобы только предоставить доступ от определенных подсетей. Этот обман работает, потому что sshd не спрашивает PAM ничто об основанном на ключе авторе.
В/etc/ssh/sshd_config (я думаю, что это значения по умолчанию так или иначе на Ubuntu), что-то как:
PubkeyAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes
В/etc/pam.d/sshd не комментируют pam_access строку (я верю на Ubuntu, это присутствует в правильной последовательности, но прокомментировано):
account required pam_access.so
В/etc/security/access.conf:
+:ALL:192.168.1.0/24
Примечание: Я не протестировал это вообще.