web-dev-qa-db-ja.com

LDAP認証(Active Directory)およびADに保存されたsshキーを使用したSSH

環境:Ubuntu 14.04および16.04サーバー、Windows Server 2016上のActive Directory、Ubuntu 14.04および16.04クライアント。 Ubuntuサーバーとクライアントはドメインにありません。

みなさん、こんにちは、

Sshのldap認証を実現するすべての方法で少し迷っています。しかし、私は私に適したものを見つけることができません。

私の願い:「sAMAccount @ serverIP」でログインしてサーバーに接続したくないので、SSHキーはADに保存されます(新しいフィールドはodiSSHPubKeysとして追加されます)。私のサーバーはAD(ldapsearchクエリ)とうまく通信します。私はsshdconfigを更新することでそれを達成しました:

/ etc/ssh/sshd_config

AuthorizedKeysCommand /usr/bin/auth
AuthorizedKeysCommandUser root

/ usr/bin/auth

#!/bin/bash

cn=$1
server=ldap.myad.net #Put your server IP
basedn=dc=mydomain,dc=net #Put your basedn
port=389
bindUser=myBindUser
bindPass=myBindUserPassword
#cn=mathieu

ldapsearch -LLL -o ldif-wrap=no -x -h $server -p $port -b $basedn -D $bindUser -w $bindPass -s sub "(sAMAccountName=$cn)" | sed -n 's/^[ \t]*odiSSHPubKeys:[ \t]*\(.*\)/\1/p'

[email protected]に接続すると、preauthに蹴られます

/ var/log/auth.log

Apr 18 11:56:26 MLL-HV-UBU-16 sshd[9103]: Invalid user mathieu from 192.168.0.114
Apr 18 11:56:26 MLL-HV-UBU-16 sshd[9103]: input_userauth_request: invalid user mathieu [preauth]
Apr 18 11:56:26 MLL-HV-UBU-16 sshd[9103]: Connection closed by 192.168.0.114 port 50152 [preauth]

だから私の問題は、「mathieu」がUbuntuサーバーにユーザーとして存在しないということです。私は自分のcnを/ usr/bin/authに強制し、rootアカウント([email protected])でログに記録しようとします。

事前認証チェックを無効にしてldapを機能させるにはどうすればよいですか?

PS:ログイン/パスワード認証は必要ありません(このソリューションには、たくさんのtutoがありますが、sshキーや古いものには多くありません)。

ご協力いただきありがとうございます

3
matll42

ここでの最適なオプションは、この目的のためにsssdを使用することです。 AltSecurityIdentitiesを使用してキーを保存し、realmdを使用してサーバーをドメインに参加させます。

ドメインが参加したら、次を[domain /]セクションの下の/etc/sssd/sssd.confファイルに追加します。

ldap_user_extra_attrs = altSecurityIdentities:altSecurityIdentities

ldap_user_ssh_public_key = altSecurityIdentities

ldap_use_tokengroups = True

[sssd]セクションの下に以下を追加します。

services = nss、pam、sudo、ssh

次に、/ etc/ssh/sshd_configに以下を追加します。

AuthorizedKeysCommand/usr/bin/sss_ssh_authorizedkeys

AuthorizedKeysCommandUserルート

両方のサービスを再起動すると、ADのAltSecurityIdentities拡張属性に保存されているADユーザー名とパスワードを使用してログインできるはずです。

2
David