ssh: "Доступ заборонено конфігурацією облікового запису PAM" для одного некорінного користувача, але не іншого


24

У ініціалізації VM я можу увійти як один некореневий користувач ( 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. Якісь ідеї?

VM - це екземпляр EC2, ОС - Debian 7.1 (позашляховий AMI Amazon).


/etc/pam.d/sshdбудь ласка
GioMac

@GioMac Неважливо, я знайшов проблему.
zwol

Відповіді:


29

Зрештою, виявляється, це був односимвольний друк /etc/shadow. Знайдіть різницю:

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

Саме так, після знака оклику на tbbscraperлінії є дві колонки . Це пересуває всі поля над одним і змушує PAM думати, що рахунок закінчився 8 січня 1970 року.


9
Дякуємо за публікацію Це було корисно для мене: я вручну створив запис користувача в / etc / passwd і забув додати відповідний запис / etc / shadow.
spazm

6
@spazm Дякую за коментар. Це було корисно для мене: я вручну скопіював користувачів з іншої машини і забув скопіювати / etc / тіньовий запис одного користувача без пароля.
Jayen

8

Дякуємо, що опублікували своє запитання. Я отримував таку ж помилку, але моя проблема не була пов'язана з тіньовим файлом. Я знайшов своє виправлення і хотів опублікувати відповідь також і для всіх інших, хто з Google погрішив цю помилку. Це серверне запитання за замовчуванням виникає першим.

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

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

+:root:ALL
-:ALL:ALL

Я змінив це на наступне, і вхід зараз працює; Мені навіть не потрібно було перезапускати жодні сервіси.

+:jenkins:ALL
+:root:ALL
-:ALL:ALL

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>

Зроблено.


2

У мене така ж проблема сьогодні вранці, але сервер перевіряє користувачів на Active Directory. Виявляється, термін дії домену користувача закінчився.


2
Це ж явище, інше джерело інформації облікових записів користувачів :-) Цілком можливо, що я повинен був подати помилку на ssh та / або PAM два роки тому, запитуючи більш чіткий запис про те, чому спроба входу була відмовлена; є аргумент безпеки, щоб не повідомити особі, яка зробила спробу, чому вона не вдалася, але це не стосується системних журналів.
zwol

2

У моєму випадку я перейменовував локальних користувачів CentOS 6 і забув перейменувати їх у / etc / shadow (які не мають паролів, що не підтверджують ключ, не спадали на думку), тому записи для нових імен користувачів були просто відсутні в / etc / тіні. У / 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

1
usermod (8) - ваш друг наступного разу ;-)
Майкл Шигорін

0

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


0

У мене був той самий випуск, і жоден із запропонованих варіантів не працював. Але я знайшов на одному з форумів ( https://ubuntuforums.org/showthread.php?t=1960510 ) "обхід", який працював чудово.

Відредагуйте /etc/ssh/sshd_configта встановіть

UsePAM no

Хоча це, мабуть, не справжнє рішення, тому що з моєю машиною щось точно не вдається (вчора він працював нормально!), Цей принаймні працює.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.