アカウント情報にはLDAPを使用しています。環境は次のように構成されています...
私は次のことに気づきました
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
LDAPユーザーを使用してsshを実行したときのデバッグ出力は次のとおりです。
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
LDAPユーザーが公開鍵認証を使用して接続を試みた後、ログ/ var/log/secureには次のエントリがあります
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などの代替手段があることは承知していますが、LDAPのメンテナンスを必要としないため、Puppetを使用してインストールされたローカルのauthorized_keysを使用できるようにしたいと思います。このアプローチが可能かどうか、可能であれば、sshd、PAM、またはLDAPの構成についてはわかりません。任意のポインタをいただければ幸いです...
SshdのログレベルをDEBUGに設定するというJakujeの提案に続いて、ログには次の手がかりが含まれていました。
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に切り替えることができるため、システムはユーザーを認識します。
ジャクジェ:どうもありがとう! SELinuxが問題の原因であり、restoreconを実行すると問題が修正されました。私はあなたの助けと忍耐に感謝します!
SELinuxはオンになっていますか?これらのファイルのそれぞれのラベルは何ですか?
ls -lZ /home/ldapuser /home/ldapuser/.ssh /home/ldapuser/.ssh/authorized_keys
ランニング restorecon -rf /home/ldapuser/
問題を修正する必要があります。
LDAPユーザーのホームディレクトリは、ユーザーのLDAPuidが所有している必要があります。 LDAPユーザーのホーム内の.sshディレクトリ、および.sshディレクトリ内の公開鍵(authorized_keys)と同じです。
例:
mkdir -p /home/ldapuser/.ssh
cp authorized_keys /home/ldapuser/.ssh
getent passwd
...
kibosh:*:6035:100:kibosh:/home/kibosh:/bin/bash
ldapuser:*:6036:100:ldapuser:/home/ldapuser:/bin/bash
chmod -R 6036:users /home/ldapuser
ls -l /home
drwxr-xr-x 4 ldapuser users 4096 Nov 2 10:40 ldapuser
...
注:gid 100は、システム上のローカルグループユーザーのgidです。
また、$ HOME /.sshや$ HOME/.ssh/authorized_keysなどの権限が正しいことを確認してください。