ssh: «Доступ запрещен конфигурацией учетной записи PAM» для одного пользователя без полномочий root, но не для другого

24

На виртуальной машине, которую я инициализирую, я могу войти в систему как один пользователь без полномочий root ( admin), но не как другой ( tbbscraper) через SSH с аутентификацией с открытым ключом. Единственное сообщение об ошибке, которое я могу найти в любом файле журнала:

Sep 18 17:21:04 [REDACTED] sshd[18942]: fatal: Access denied for user tbbscraper by PAM account configuration [preauth]

На стороне клиента синдром

$ ssh -v -i [REDACTED] tbbscraper@[REDACTED]
...
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: [REDACTED]
debug1: Authentications that can continue: publickey
debug1: Trying private key: [REDACTED]
debug1: read PEM private key done: type RSA
Connection closed by [REDACTED]

Изменение 'tbbscraper' на 'admin' позволяет успешно войти в систему: debug1: Authentication succeeded (publickey).вместо сообщения «Соединение закрыто» появляется сообщение.

Это не похоже на проблему с разрешениями ...

# for x in admin tbbscraper
> do ls -adl /home/$x /home/$x/.ssh /home/$x/.ssh/authorized_keys
> done
drwxr-xr-x 3 admin admin 4096 Sep 18 17:19 /home/admin
drwx------ 2 admin admin 4096 Sep 18 16:53 /home/admin/.ssh
-rw------- 1 admin admin  398 Sep 18 17:19 /home/admin/.ssh/authorized_keys
drwxr-xr-x 3 tbbscraper tbbscraper 4096 Sep 18 17:18 /home/tbbscraper
drwx------ 2 tbbscraper tbbscraper 4096 Sep 18 17:18 /home/tbbscraper/.ssh
-rw------- 1 tbbscraper tbbscraper  398 Sep 18 17:18 /home/tbbscraper/.ssh/authorized_keys

# cmp /home/{admin,tbbscraper}/.ssh/authorized_keys ; echo $?
0

... ни проблема контроля доступа на уровне PAM ...

# egrep -v '^(#|$)' /etc/security/*.conf
#

... так что ни один из существующих ответов на подобные вопросы, похоже, не подходит. Единственное другое доказательство, которое я получил, это:

root@[REDACTED] # su - admin
admin@[REDACTED] $

но

root@[REDACTED] # su - tbbscraper
su: Authentication failure
(Ignored)
tbbscraper@[REDACTED] $

который предлагает какую-то более масштабную проблему PAM, но я не могу найти ничего явно не так с материалом в /etc/pam.d. Любые идеи?

ВМ - это экземпляр EC2, ОС - Debian 7.1 (готовый AMI от Amazon).

zwol
источник
/etc/pam.d/sshdпожалуйста
GioMac
@ GioMac Неважно, я нашел проблему.
Звол

Ответы:

29

После всего этого оказывается, что это была односимвольная опечатка /etc/shadow. Найди отличие:

admin:!:15891:0:99999:7:::
tbbscraper:!::15966:0:99999:7:::

Правильно, после восклицательного знака на tbbscraperстроке есть два двоеточия . Это сбивает все поля с одного и заставляет PAM думать, что срок действия учетной записи истек 8 января 1970 года.

zwol
источник
9
Спасибо за публикацию. Это было полезно для меня: я вручную создал запись пользователя в / etc / passwd и забыл добавить соответствующую запись в / etc / shadow.
спазм
6
@spazm Спасибо за комментарий. Это было полезно для меня: я вручную скопировал пользователей с другого компьютера и забыл скопировать запись / etc / shadow одного пользователя без пароля.
Jayen
8

Спасибо за размещение вашего вопроса. Я получал ту же ошибку, но моя проблема не была связана с файлом теней. Я нашел свое исправление и хотел опубликовать ответ также для всех, кто погуглил эту ошибку. Этот вопрос о проблеме с сервером возникает первым.

Попробуйте проверить /etc/security/access.conf!

Мы используем Active Directory для аутентификации, но мне нужно было войти в систему как локальный пользователь без AD (jenkins). Мой босс изначально установил окно с этими строками в /etc/security/access.conf:

+:root:ALL
-:ALL:ALL

Я изменил это на следующее, и теперь логины работают; Мне даже не нужно было перезапускать какие-либо службы.

+:jenkins:ALL
+:root:ALL
-:ALL:ALL
BoomShadow
источник
3

Было то же сообщение об ошибке. Выключил sshd и перезапустил его в режиме отладки

    /usr/sbin/sshd -ddd

это указывало на причину:

    debug3: User autossh not allowed because account is locked
            ...
    input_userauth_request: invalid user <username> [preauth]

Зарегистрированный аккаунт:

    passwd -S <username>

который показал, что учетная запись была заблокирована (флаг «L») Разблокировать учетную запись, установив новый пароль:

    passwd <username>

Выполнено.

MarkHelms
источник
2

Сегодня утром у меня возникла та же проблема, но сервер аутентифицирует пользователей по Active Directory. Оказывается, срок действия пароля домена пользователя истек.

Ab_Ro
источник
2
То же самое явление, другой источник информации об учетной записи пользователя :-) Возможно, я должен был сообщить об ошибке в ssh и / или PAM два года назад, попросив более четкую регистрацию того, почему попытка входа была отклонена; есть аргумент безопасности, чтобы не сообщать человеку, который сделал попытку, почему она не удалась, но это не относится к системным журналам.
Звол
2

В моем случае я переименовывал локальных пользователей CentOS 6 и забыл переименовать их в / etc / shadow (которые аутентифицированы по паролю без ключа, у меня не всплыло), поэтому записи для новых имен пользователей были просто отсутствует в / etc / shadow. В / var / log / secure она выдала мне ошибку unix_chkpwd и доступ запрещен PAM:

    unix_chkpwd[12345]: could not obtain user info (user2)
    sshd[12354]: fatal: Access denied for user user2 by PAM account configuration
kuz8
источник
1
usermod (8) - твой друг в следующий раз ;-)
Михаил Шигорин
0

В моем случае это было нежелательное нажатие на '' / etc / tcb / USER / shadow '' после повреждения ext4 rootfs в "интересных" условиях; это выглядело довольно текстильно, поэтому не было замечено во время первоначального осмотра (не могу переустановить узел прямо сейчас, но придется).

Михаил Шигорин
источник
0

У меня была та же проблема, и ни один из предложенных вариантов не работал. Но я нашел на одном из форумов ( https://ubuntuforums.org/showthread.php?t=1960510 ) «обходной путь», который работал отлично.

Редактировать /etc/ssh/sshd_configи установить

UsePAM no

Хотя это, вероятно, и не настоящее решение, потому что что-то определенно не так с моей машиной (вчера она работала нормально!), Эта по крайней мере работает.

Крестный отец
источник