мы используем 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 Исправлена проблема. Я ценю вашу помощь и терпение!