LDAPで管理しているユーザーアカウントでSSHログインができずに困っています。
クライアント側ではLDAPからユーザーアカウント情報を参照でき、パスワード認証でログインもできます。
ただSSHではリモート、ローカル共にログインできません。
ssh [USER_NAME]@172.31.24.39
をしますと、
パスワードを聞かれるのですが
ローカルでログインできるパスワードを入力しても Permission denied please try again
といわれれしまいます。
sshd側でうまくLDAPを見にいってくれていないのだと思うのですが・・・はまってしまって困っています。
sshでログインできる状態にするにはどのような設定を行えばいいかわかる方いらっしゃいましたら教えて頂けると助かります。
LDAPサーバのOSはLinux(debian8)はクライアントのOSはLinux(debian7)です。
クライアント側のログを参照すると下記のとおりです。
lang
1sshd[25802]: Failed password for [USER_NAME] from 172.31.24.39 port 60385 ssh2
宜しくお願いします。
ーーー追記ーーーー
ldapのバージョン:2.4.40
◆SSH公開鍵の登録方法
※ldifファイルに記述
/etc/ldap/ldif/user.ldif
lang
1dn: uid=username,ou=User,dc=example,dc=co,dc=jp 2objectClass: shadowAccount 3objectClass: posixAccount 4objectClass: account 5objectClass: top 6objectCkass: ldapPublicKey 7cn: username 8uid: username 9uidNumber: 2001 10gidNumber: 2000 11homeDirectory: /home/username 12loginShell: /bin/bash 13shadowMin: 0 14shadowMax: 99999 15shadowWarning: 7 16shadowLastChange: 16175 17userPassword: {SSHA}************************************* 18sshPublicKey: ssh-rsa AAAA**********************************
※openssh-lpkスキーマの追加
/etc/ldap/ldif/openssh-lpk.ldif
lang
1dn: cn=openssh-lpk,cn=schema,cn=config 2objectClass: olcSchemaConfig 3cn: openssh-lpk 4olcAttributeTypes: ( 1.3.6.1.4.1.24552.500.1.1.1.13 NAME 'sshPublicKey' 5 DESC 'MANDATORY: OpenSSH Public key' 6 EQUALITY octetStringMatch 7 SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 ) 8olcObjectClasses: ( 1.3.6.1.4.1.24552.500.1.1.2.0 NAME 'ldapPublicKey' SUP top AUXILIARY 9 DESC 'MANDATORY: OpenSSH LPK objectclass' 10 MAY ( sshPublicKey $ uid ) 11 )
ldappサーバーから公開鍵を取得する設定(クライアント側)
・AuthorizedKeysCommandを使用
/etc/ssh/sshd_config
lang
1AuthorizedKeysCommand /usr/lib/ssh-command/find_key.sh 2AuthorizedKeysCommandUser root
/usr/lib/ssh-command/find_key.sh
lang
1#!/bin/bash 2 3uri=ldap://10.0.XXX.XXX/ 4binddn="cn=admin,dc=example,dc=co,dc=jp" 5bindpw=****** 6base="dc=example,dc=co,dc=jp" 7uid=$1 8 9ldapsearch -LLL -H ${uri} -w "${bindpw}" -D "${binddn}" -b "${base}" "(& (objectClass=posixAccount) (uid=${uid}))" "sshPublicKey" | ruby -e 'puts STDIN.read.gsub(/\n /,"").match(/sshPublicKey: (.+)/).to_a[1]'
※クライアント側から上記/usr/lib/ssh-command/find_key.shに引数ユーザー名を渡して実行した結果、公開鍵情報は取得できています。
lang
1/usr/lib/ssh-command/find_key.sh username 2ssh-rsa AAAA*********・・・
回答2件
あなたの回答
tips
プレビュー