Ми використовуємо LDAP для інформації про обліковий запис. Середовище налаштовано таким чином ...
- Сервер каталогів CentOS 7 OpenLDAP
- Клієнт CentOS 7 налаштований на використання сервера каталогів
- authconfig використовувався для налаштування клієнта CentOS 7 для аутентифікації LDAP
Я помітив наступне
- Локальний користувач (той, чиї дані облікового запису в / etc / passwd) може ssh до самого клієнта без використання аутентифікації відкритим ключем (без пароля)
- Користувач LDAP може ssh до самого клієнта, використовуючи пароль
- Користувач LDAP не може ssh до самого клієнта, використовуючи аутентифікацію відкритого ключа. Користувач має правильно налаштовані ключі ssh (
id_rsa.pub
,id_rsa
) і authorized_keys схожі на локального користувача
Вивід налагодження при виконанні ssh за допомогою локального користувача
debug1: Offering RSA public key: /home/localuser/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 279
Вивід налагодження при виконанні ssh за допомогою користувача LDAP
debug1: Offering RSA public key: /home/ldapuser/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
Журнал, / var / log / secure, має наступний запис після того, як користувач LDAP намагається підключитися за допомогою аутентифікації відкритого ключа
Mar 19 16:47:01 localhost sshd[20539]: Connection closed by x.x.x.x [preauth]
LDAP може знайти обліковий запис користувача
$ getent passwd ldapuser
ldapuser:x:5001:5000::/home/ldapuser:/bin/bash
Коли дозволяє ssh PasswordAuthentication
$ ssh test
ldapuser@test's password:
Last failed login: Sat Mar 19 17:08:29 UTC 2016 from x.x.x.x on ssh:notty
Last login: Sat Mar 19 15:55:40 2016
Я розумію, що існують такі альтернативи, як OpenSSH-LPK, але хотілося б мати можливість використовувати локальну авторизацію, встановлену за допомогою Puppet, оскільки вона не вимагає підтримки LDAP. Я не впевнений, що цей підхід можливий і, якщо він є, конфігурації sshd, PAM або LDAP. Будь-які вказівники оцінили б ...
Після пропозиції Jakuje встановити рівень журналу на DEBUG для sshd, журнали містили ключ
Mar 19 18:22:42 localhost sshd[20934]: debug1: temporarily_use_uid: 5001/5000 (e=0/0)
Mar 19 18:22:42 localhost sshd[20934]: debug1: trying public key file /home/ldapuser/.ssh/authorized_keys
Mar 19 18:22:42 localhost sshd[20934]: debug1: Could not open authorized keys '/home/ldapuser/.ssh/authorized_keys': Permission denied
Mar 19 18:22:42 localhost sshd[20934]: debug1: restore_uid: 0/0
Домашні каталоги / та / мають наступні дозволи
$ ll -and / /home
dr-xr-xr-x. 17 0 0 4096 Feb 22 17:26 /
drwxr-xr-x. 5 0 0 45 Mar 19 03:05 /home
Каталог / home / ldapuser має такі дозволи
$ ll -an .
drwxr-xr-x. 3 5001 5000 99 Mar 19 16:46 .
drwxr-xr-x. 5 0 0 45 Mar 19 03:05 ..
drwx------. 2 5001 5000 76 Mar 19 02:45 .ssh
У каталозі /home/ldapuser/.ssh доступні такі права
$ ll -an .
total 16
drwx------. 2 5001 5000 76 Mar 19 02:45 .
drwxr-xr-x. 3 5001 5000 99 Mar 19 16:46 ..
-rw-r--r--. 1 5001 5000 419 Mar 19 02:45 authorized_keys
-rw-------. 1 5001 5000 1679 Mar 19 02:45 id_rsa
-rw-r--r--. 1 5001 5000 419 Mar 19 02:45 id_rsa.pub
-rw-r--r--. 1 5001 5000 177 Mar 19 02:45 known_hosts
Демон sshd встановлює ефективного користувача на 5001/5000 і тому не впевнений, чому дозвіл буде відмовлено. Користувач root може переключитися на ldapuser, щоб система знала про користувача.
Jakuje: Велике спасибі! Причиною проблеми була SELinux, і запуск проблеми відновлення було виправлено. Я ціную вашу допомогу і терпіння!
/
і /home
.
ls -lZ / /home /home/ldapuser /home/ldapuser/.ssh /home/ldapuser/.ssh/authorized_keys
? Біг restorecon -rf /home/ldapuser/
їх слід виправити.
LogLevel
принаймніDEBUG
на сервері, спробуйте ще раз і розмістіть журнали з сервера (/var/log/secure
абоjourtnalctl -e
). Слід зазначити причину відхилення відкритого ключа.