Мы используем LDAP для информации об учетной записи. Среда настроена следующим образом ...
- Сервер каталогов CentOS 7 OpenLDAP
- Клиент CentOS 7, настроенный на использование сервера каталогов
- authconfig используется для настройки клиента CentOS 7 для аутентификации LDAP
Я заметил следующее
- Локальный пользователь (тот, чья информация об учетной записи находится в /etc /passwd) может подключиться к ssh самому клиенту без использования аутентификации с открытым ключом (без пароля)
- Пользователь LDAP может подключиться к клиенту с помощью пароля
- Пользователь LDAP не может подключиться к ssh к клиенту с использованием аутентификации с открытым ключом. У пользователя есть правильно настроенные ssh-ключи (
id_rsa.pub
,id_rsa
) и авторизованные ключи, аналогичные локальному пользователю.
Отладочный вывод при выполнении 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
Каталоги / и / home имеют следующие разрешения
$ 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 был причиной проблемы, и запуск restorecon устранил проблему. Я ценю вашу помощь и терпение!