Ограничение SSH только SFTP?

2143
Cheetah

Я использую ключи SSH, чтобы разрешить вход в систему без пароля. Я хочу ограничить их только SFTP.

У меня есть следующее в моем authorized_keysфайле, который, кажется, работает:

command="internal-sftp" ssh-rsa ...

Кажется, я не могу найти способ обойти это ... но я не гений ... я действительно в безопасности?

0
Вы разрешаете аутентификацию по паролю вообще? Aaron Miller 11 лет назад 0
Нет ... никто не знает пароль. Cheetah 11 лет назад 0
Это не то, что я спросил. В / etc / ssh / sshd_config или аналогичном, установлено ли для `PasswordAuthentication` значение` yes` или `no`? Aaron Miller 11 лет назад 0
@AaronMiller установлен в `yes`, но я могу установить это из файла` authorized_keys`, хотя я не могу? Cheetah 11 лет назад 0
Не выглядит так из документации, нет. Я бы выключил это в sshd_config; когда вы устанавливаете принудительную команду в авторизованном ключе, она применяется только к соединениям, аутентифицированным с этим ключом. Если у вас включена аутентификация по паролю, то вход в систему с паролем приведет к появлению оболочки, как обычно, поэтому (например) тот, кто выполняет успешную атаку по словарю, все еще может вас довольно сильно расстроить. Aaron Miller 11 лет назад 0
@ AaronMiller, да, это не так, если вы используете эту учетную запись, так как вы можете войти только с ключом. Это учетная запись без пароля (в том, что никто не знает пароль) Cheetah 11 лет назад 0
Гораздо лучшие методы подробно описаны на SF: http://serverfault.com/q/354615/28549 Ben Voigt 10 лет назад 1

3 ответа на вопрос

1
Daniel

not really. One can just download the authorized_keys file, edit it removing the command="internal-sftp" part and upload it on top of yours and then ssh into the box.

Да, смена оболочки также необходима, chroot jail также является хорошей практикой. И пересылка также может быть уязвимостью. http://serverfault.com/a/354618/28549 Ben Voigt 10 лет назад 1
1
leberknecht

Я думаю, что правильный способ настроить это будет добавить ForceCommand internal-sftpв конкретный раздел пользователя наsshd_config

Subsystem sftp internal-sftp  Match User MyUser PasswordAuthentication no ChallengeResponseAuthentication no ForceCommand internal-sftp ChrootDirectory /home/MyUser 
0
Martin Prikryl

Вам также следует удалить пароль из учетной записи (независимо от того, что «никто не знает пароль» ).

passwd --delete username 

В остальном ваше решение кажется нормальным.

Извините, я должен был прояснить ситуацию. Это уже аккаунт без пароля. Cheetah 11 лет назад 0
Учетная запись без пароля - это учетная запись, которая не требует пароля для входа в систему. Отключить пароль это другое дело. ИМЕЙТЕ В ВИДУ! EnzoR 7 лет назад 0

Похожие вопросы