Включите пароль для входа по SFTP, сохраняя аутентификацию по ключам SSH

Как мне разрешить вход в систему с паролем для транзакций SFTP (сделанный Drupal, если это важно), оставляя его отключенным для всех других аутентификаций на основе ключей SSH? В настоящее время все существующие пользователи сервера CentOS используют ключи для входа в систему и /etc/ssh/sshd_config имеет PasswordAuthentication no)?

3 ответа

Решение

Насколько я понимаю, вы хотите разрешить пароли для одних пользователей, но не для других?
Вы можете настроить Match блок. Так что ваш конфиг может выглядеть примерно так:

...
PasswordAuthentication no
...
Match user drupalsftp
    PasswordAuthentication yes

Поскольку вы упомянули, что эти транзакции на основе паролей происходят из drupal, возможно, вы могли бы занести в белый список список адресов хоста? Match address 127.0.0.1/32

Вы даже должны быть в состоянии объединить критерии и сказать, что только конкретная учетная запись с определенного адреса может выполнять аутентификацию по паролю.

PasswordAuthentication no
...
Match user drupalsftp address 10.1.2.3/32
    PasswordAuthentication yes
    # also since we want only sftp
    ForceCommand internal-sftp

связи

SFTP - это просто частный случай сеанса SSH. Логин пароль включен по умолчанию, если у вас есть PasswordAuthentication yes или же ChallengeResponseAuthentication yes в вашем /etc/ssh/sshd_config, Разрешение аутентификации по паролю не блокирует аутентификацию на основе ключей.

Перейдите в файл /etc/ssh/sshd_config и измените следующую строку:

ПарольАутентификация да

Затем перезапустите sshd:

sudo service ssh restart

Другие вопросы по тегам