Можно ли настроить пользователя на ubuntu с помощью openssh, чтобы ssh не использовал аутентификацию по паролю, но sftp использовал?
Я предполагаю, что если я изменю /etc/ssh/ssh_config
иметь PasswordAuthentication yes
это позволяет пользователям использовать пароли для входа в систему как по ssh, так и по sftp.
Изменить: Моя цель здесь - позволить некоторым пользователям sftp с паролем вместо ключевого файла. Но я не хочу, чтобы пользователи ssh могли входить в систему с паролем, я хочу, чтобы они использовали ключевой файл. Если это поможет, мне не нужно, чтобы пользователи sftp могли войти в систему, им нужно только выполнить sftp.
Насколько я понимаю, у вас есть (по крайней мере, для этой конкретной проблемы) два отчетливый группы пользователей, один из которых может войти через SSH и получить интерактивную оболочку (назовем группу ssh
) и один может войти через SFTP и получить только оболочку SFTP (назовем группу sftp
).
Теперь создайте группы ssh
и sftp
в вашей системе с groupadd
, поместите соответствующих пользователей в группы (gpasswd -a $USERNAME $GROUPNAME
) и в конце добавьте следующие строки (это важно!) вашей sshd_config
расположен в /etc/ssh/sshd_config
:
Match Group sftp
PasswordAuthentication yes
# Further directives for users in the "sftp" group
Match Group ssh
PasswordAuthentication no
# Further directives for users in the "ssh" group
Читайте о Match
директива в sshd_config (5) и о разрешенных узоры в ssh_config (5).
Вам также придется перезапустить ssh
процесс, чтобы это вступило в силу:
sudo /etc/init.d/ssh restart
Здесь вы делаете удар в темноте, но эта тема может показаться вам интересной.
Справедливо ли посадить моих пользователей SFTP в их домашний каталог?
Нет, и я не понимаю, как это могло бы улучшить безопасность, так в чем бы смысл?
authorized_keys может разрешить разные команды для разных клавиш, если вам это нужно. В противном случае у вас есть возможность создать несколько учетных записей и использовать acls или sudo.