Аутентификация по открытому ключу для пользователей LDAP с использованием локальных авторизованных ключей

мы используем LDAP для информации об учетной записи. Среда настраивается следующим образом ...

  • A CentOS 7 OpenLDAP directory server
  • клиент 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, но хотелось бы чтобы иметь возможность использовать локальные authorized_keys, установленные с помощью Puppet, поскольку это не требует обслуживания LDAP. Я не уверен, возможен ли этот подход и, если это так, конфигурации sshd, PAM или LDAP. Любые указатели будут оценены ...


следуя предложению Jakuje о настройке уровня журнала для отладки для 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 Исправлена проблема. Я ценю вашу помощь и терпение!

24
задан bkeyser5280
30.04.2023 17:54 Количество просмотров материала 2932
Распечатать страницу

2 ответа

включен ли SELinux? Каковы соответствующие ярлыки на этих файлах?

ls -lZ /home/ldapuser /home/ldapuser/.ssh /home/ldapuser/.ssh/authorized_keys

Running restorecon -rf /home/ldapuser/ должно исправить проблемы.

1
отвечен Jakuje 2023-05-02 01:42

домашний каталог пользователя LDAP должен принадлежать идентификатору пользователя LDAP. То же самое .каталог ssh внутри дома пользователя LDAP и открытый ключ (authorized_keys) внутри .каталог СШ.

пример:

mkdir -p /home/ldapuser/.ssh

cp authorized_keys /home/ldapuser/.ssh

getent passwd
...
kibosh:*:6035:100:kibosh:/home/kibosh:/bin/bash
ldapuser:*:6036:100:ldapuser:/home/ldapuser:/bin/bash

chmod -R 6036:users /home/ldapuser

ls -l /home
drwxr-xr-x  4 ldapuser         users      4096 Nov  2 10:40 ldapuser
...

Примечание: gid 100-это gid локальной группы пользователей в моей системе.

кроме того, убедитесь, что разрешения верны для $HOME/.ssh и $HOME/.по SSH/authorized_keys, и т. д.

0
отвечен kibosh 2023-05-02 03:59

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх