LoginSignup
11

More than 3 years have passed since last update.

OpenLDAP - SSH公開鍵を登録してログインするまでの手順

Last updated at Posted at 2015-12-11

やりたいこと

  • SSH公開鍵をLDAPに登録して一元管理したいため調査しました。OpenSSHをソースからコンパイルしてとかいろいろ情報がありましたが、Ubuntu 14.04.1 LTSではOpenSSH 6.6.1p1がapt-getで入手できるのでスキーマファイルをダウンロードしてincludeするだけでした。

環境

  • OS:Ubuntu 14.04.1 LTS
  • OpenSSH:6.6.1p1
  • OpenLDAP:2.4.31

LDAPサーバ側の設定

  • まずLDAPサーバでの設定手順
1.OpenLdapサービス停止
sudo su -
service slapd stop
2.スキーマファイルをダウンロード
cd /usr/local/src
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/openssh-lpk/openssh-lpk_openldap.schema
3.スキーマディレクトリにコピー
mv openssh-lpk_openldap.schema /etc/ldap/schema
4.slapd.conf編集
vi /etc/ldap/slapd.conf
------------------------------------------------------------
include         /etc/ldap/schema/openssh-lpk_openldap.schema
------------------------------------------------------------
5.ConfigDB削除
rm -rf /etc/ldap/slapd.d/*
6.ConfigDB再作成
slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d/
chown -R openldap:openldap /etc/ldap/slapd.d
7.OpenLdapサービス起動
service slapd start
  • これでLDAPのAttributeに「sshPublicKey」が表示され公開鍵が追加できる

LDAPクライアント側の設定

  • sshdがLDAPサーバのSSH公開鍵を取得するようにする設定手順
1.LDAPサーバからSSH公開鍵を取得するスクリプト
  • やっていることはLDAPサーバに接続して「ldapsearch」の結果から公開鍵だけ抽出
vi /opt/ssh-command/LdapGetSSHKey.sh
------------------------------------------------------------
#!/bin/bash

uri=ldap://<LDAP-SERVER>
binddn="<BIND-USER>"
bindpw=<PASSWORD>
base="<BASE>"
uid=$1

ldapsearch -LLL -H ${uri} -w "${bindpw}" -D "${binddn}" -b "${base}" "(& (objectClass=posixAccount) (uid=${uid}))" "sshPublicKey" | sed -ne '2,$p' | sed -e 's/sshPublicKey: //g' | sed -e 's/^ //g' | tr -d '\n'
------------------------------------------------------------
2.sshdに認証コマンドの設定
vi /etc/ssh/sshd_config
------------------------------------------------------------
AuthorizedKeysCommand /opt/ssh-command/LdapGetSSHKey.sh
AuthorizedKeysCommandUser root
------------------------------------------------------------

※参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11