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

Как отключить аутентификацию по паролю для определенных пользователей в SSH

Я прочитал несколько сообщений об ограничении ВСЕХ пользователей ТОЛЬКО аутентификацией по ключу, однако я хочу принудительно использовать только одного пользователя (svn) только для аутентификации по ключу, остальные могут быть ключом или паролем.

Я читаю https://stackoverflow.com/questions/4241197/how-to-disable-password-authentication-for-every-users-except-several, однако, похоже, что часть sshd_config "сопоставить пользователя" является частью openssh-5.1. Я использую CentOS 5.6 и только OpenSSH 4.3. В настоящий момент у меня доступны следующие репозитории.

$ yum repolist
Loaded plugins: fastestmirror
repo id                            repo name                                                                         status
base                               CentOS-5 - Base                                                                   enabled:  3,535
epel                               Extra Packages for Enterprise Linux 5 - x86_64                                    enabled:  6,510
extras                             CentOS-5 - Extras                                                                 enabled:    299
ius                                IUS Community Packages for Enterprise Linux 5 - x86_64                            enabled:    218
rpmforge                           RHEL 5 - RPMforge.net - dag                                                       enabled: 10,636
updates                            CentOS-5 - Updates                                                                enabled:    720
repolist: 21,918

Я в основном использую epel, до последней версии (1.6) subversion используется rpmforge.

Есть ли способ добиться этого при моих текущих настройках? Я не хочу ограничивать сервер ключами только потому, что, если я потеряю свой ключ, я потеряю свой сервер ;-)

Добавьте блок Match в файл sshd_config. Что-то вроде этого:

Match Group SSH_Key_Only_Users
    PasswordAuthentication no

Или если это действительно один пользователь

Match User Bad_User
    PasswordAuthentication no

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

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

Я только что на собственном опыте узнал, что CentOS 5 (с последними обновлениями на сегодняшний день) не поддерживает Соответствие команда, заблокировав себе доступ к удаленному серверу. Веселые времена.

Так что будьте осторожны, если вы попытаетесь добавить Соответствие команду на CE5, и вы делаете перезапуск службы sshd этого не будет, и как только вы закроете свой sshd-клиент, вы заблокируетесь, пока не сможете снова войти в систему через консоль, чтобы удалить эти 2 строки.