Назад | Перейти на главную страницу

SSH из Windows в Linux с сертификатами AD

У меня есть клиентский компьютер Windows, подключенный к Active Directory, и сервер Linux, также подключенный к Active Directory (через PAM с LDAP), и я хочу иметь возможность использовать SSH без пароля из Windows в Linux. SSH работает нормально, пока я предоставляю пароль для учетной записи AD.

Я нашел следующую статью, которая как бы дала мне представление о том, как это можно сделать, но я не могу заставить ее работать: http://www.moelinux.net/wordpress/?p=95

Я пробовал следующее (на основе статьи выше):

  1. (на клиенте) Экспортируйте мой сертификат AD в файл .PFX
  2. Преобразуйте .PFX в файл id_rsa, используя следующую команду: openssl pkcs12 -in somefile.pfx -out id_rsa
  3. Удалите id_rsa из пароля с помощью следующей команды: openssl rsa -in id_rsa -out id_rsa
  4. Создайте открытый ключ с помощью следующей команды: ssh-keygen -y -f id_rsa> id_rsa.pub
  5. (на сервере) Та же процедура, что и выше, поэтому у меня есть идентичные ~ / .ssh / id_rsa и ~ / .ssh / id_rsa.pub на клиенте и сервере.

Как вы могли догадаться, это не работает. Мне все еще нужно ввести свой пароль. Где я мог ошибиться?

(Что я действительно пытаюсь сделать, так это настроить способ подключения из Windows к Linux с учетной записью AD, насколько это возможно. Это кажется лучшим способом сделать это, но если есть другие способы, я открыт к идеям :-))

Вы путаете сертификаты X.509 с ключами RSA. Это совершенно разные реализации PKI. Поскольку и ваш клиент, и SSH-сервер являются членами домена, я бы сказал, что забыл ключи и использовал Kerberos / GSSAPI. В /etc/ssh/sshd_config на сервере вы должны найти директиву, GSSAPIAuthentication, раскомментируйте его и измените значение на yes. После сохранения изменений перезапустите демон SSH.

Для клиента вам понадобится последняя версия PuTTY (0.61) или OpenSSH. В PuTTY по умолчанию включен GSSAPI, поэтому просто введите имя хоста сервера SSH (IP-адрес будет не работа) и нажмите "Подключиться".