ssh ldap AuthorizedKeysCommand

Я смонтировал сервер LDAP, я сгенерировал сертификаты для своих пользователей и хотел сохранить сертификаты в ldap (сами сертификаты, а не их каталоги), я нашел следующую схему, используемую для хранения открытого ключа, поэтому я добавил схему и соответствующие открытые ключи пользователей к серверу LDAP.

# octetString SYNTAX
attributetype ( 1.3.6.1.4.1.24552.500.1.1.1.13 NAME 'sshPublicKey'
DESC 'MANDATORY: OpenSSH Public key'
EQUALITY octetStringMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )

# printableString SYNTAX yes|no
objectclass ( 1.3.6.1.4.1.24552.500.1.1.2.0 NAME 'ldapPublicKey' SUP top AUXILIARY
DESC 'MANDATORY: OpenSSH LPK objectclass'
MAY ( sshPublicKey $ uid )
)

Я исследую использование ssh для подключения к серверу с использованием открытого и закрытого ключей, и обнаружил, что для чтения ssh с открытого ключа сервера LDAP требуется команда AuthorizedKeysCommand и скрипт, который будет отвечать за поиск открытых ключ и передать его в LDAP, нашел этот скрипт для поиска открытого ключа ldap

#!/bin/bash
cn=$usuario
server=servus2.inf #Put your server IP
basedn=ou=usuarios,dc=servus2,dc=inf #Put your basedn
port=389
ldapsearch -x -h $server -p $port -b $basedn -s sub"(objectclass=posixAccount)(uid=$cn)" | sed -n '/^ /{H;d};/sshPublicKey:/x;$g;s/\n *//g;s/sshPublicKey: //gp'

Я положил его в папку /etc/ssh и дал разрешение на выполнение всем пользователям, также дал диспетчеру разрешений на запись и чтение, После этого я добавил в строку file /etc/ssh/sshd_config:

AuthorizedKeysCommand /etc/ssh/script.sh

и понял, что линия была PubkeyAuthentication yes, поэтому после настройки я перезагружаю ssh-сервер. Клиент пытается подключиться к серверу через ssh следующим образом:

ssh -i claveprivada usuario@servus2.inf

, но ничто не заставляет меня следовать за мной. Я спрашиваю пароль, добавил опцию -vvv, чтобы увидеть детали, которые происходили, но не скажи мне что-нибудь конкретное. Я думаю, что не читает строку AuthorizedKeysCommand, которая не выходит в любое время. Я посмотрел журнал и не получил ошибку в отношении этой строки или сценария, поэтому я думаю, что это игнорирование строки.

Я искал информацию об этом и увидел, что в более ранних версиях была ошибка. Я не знаю, было ли это уже решено, но я обновил до версии в Ubuntu 16, OpenSSH 7.1p2, но это не помогло мне как обычно.

Кто-нибудь знает, как решить эту проблему?

2
задан 22 February 2017 в 17:29

1 ответ

Я попытался получить Открытый ключ определенного пользователя, который пытается войти в использование ssh. (чей Открытый ключ хранится в сервере LDAP). Ниже конфигураций, работавших для меня.

В /etc/ssh/sshd_config

AuthorizedKeysCommand /usr/bin/auth
AuthorizedKeysCommandUser nobody

и сценарий, который берет идентификатор пользователя (имя), поскольку вход ниже.

cn=$1
server=192.168.57.105 #Put your server IP
basedn=ou=users,dc=myorg,dc=org #Put your basedn
port=389

ldapsearch -x -h $server -p $port -o ldif-wrap=no  -b $basedn -s sub "(&(objectClass=posixAccount)(uid=$cn))" | sed -n 's/^[ \t]*sshPublicKey:[ \t]*\(.*\)/\1/p'
1
ответ дан 23 February 2017 в 03:29

Другие вопросы по тегам:

Похожие вопросы: