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

Настройте sftp на использование пароля, но ssh не на использование пароля

Можно ли настроить пользователя на 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.