Налаштуйте sftp для використання пароля, але ssh не використовувати пароль


15

Чи можна налаштувати користувача на ubuntu з openssh, щоб ssh не використовував автентифікацію пароля, а sftp?

Я припускаю, що якщо я зміню, /etc/ssh/ssh_configщоб PasswordAuthentication yesце зробило можливим, щоб користувачі могли використовувати паролі для входу як ssh, так і sftp.

Редагувати: Моє призначення тут - дозволити деяким користувачам sftp з паролем замість файлу ключів. Але я не хочу, щоб користувачі ssh мали змогу увійти з паролем, я хочу, щоб вони мали використовувати файл файлів ключів. Якщо це допомагає, мені не потрібні користувачі sftp, щоб мати можливість увійти, вони лише повинні робити sftp.

Відповіді:


26

Як я розумію, у вас є (принаймні для цієї конкретної проблеми) дві окремі групи користувачів, одна може ввійти через 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


6
Це недостатньо задокументовано, але буде використано лише одну директиву відповідності; тобі слід поставити найбільш конкретну директиву. Якщо ви спершу перерахуєте sftp, користувачеві, що перебуває в обох групах, буде дозволено пароль.
Тобу

Спасибі! У sshмоїх скриньках ubuntu вже є група, тому мені дійсно потрібно лише додати sftpта ввести користувачів sftp до цієї групи. Я поєднаю вашу відповідь із використанням, scponlyщоб уберегти користувачів sftp від входу в систему.
dar

2
Якщо PasswordAuthenticationбуде налаштовано на noподальшу роботу, чи все ще це буде працювати? Чи Match Groupперекриває це для sftp користувачів? Тому що це я маю, і це не працює. Я можу запустити ключ за допомогою ключа, але не можу як користувач sftp.
альфадогг

0

Ні, і я не бачу, як це покращило б безпеку, тож у чому справа?

санкціоновані_кейси можуть дозволити різні команди для різних клавіш, якщо ви цього хочете. В іншому випадку у вас є можливість створити кілька облікових записів і використовувати acls або sudo.


Я не намагаюся покращити безпеку. Я намагаюсь полегшити деяким користувачам використання пароля замість файлу ключів для доступу sftp. Однак я не хочу, щоб хтось використовував пароль для доступу до ssh.
Дар

@dar OK; тоді різні рахунки. Якщо вони були тим самим обліковим записом, хтось, хто знає пароль sftp, міг би перезаписати якийсь файл профілю (.ssh / rc, .profile, .bashrc ...) і отримати ті ж привілеї, що і хтось, хто знає приватний ключ.
Тобу

0

Тут робимо колючку в темряві, але ця тема може здатися цікавою.

Справедливо в'язнити моїх користувачів SFTP до їх домашнього каталогу?


Я нічого не бачу там про автентифікацію пароля, виправте мене, якщо я помиляюся.
Дар

Ні, ти прав. Не було зрозуміло, що ти хочеш робити з SFTP проти SSH. З іншого коментаря я бачу, що ви хочете, щоб користувачі використовували пароль для SFTP, але не для SSH. Чому?
Тайлер К

Оскільки ці користувачі, яким потрібно використовувати sftp, вважають ключові файли складними, але вони розуміють, як вводити паролі. Це зводиться до проблеми з користувачем для sftp. Але я хочу мінімізувати площу поверхні атаки, зберігаючи паролі поза ssh-сумішшю.
Дар

SFTP працює, спочатку відкриваючи ssh-тунель, потім передаючи файли через FTP. Ви дійсно не можете розлучитися з двома. Я думаю, ви могли б, встановивши деякі ACL, але це насправді не має сенсу.
Тайлер К
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.