1. tukapai

    No comment

    tukapai
Changes in body
Source | HTML | Preview
@@ -1,123 +1,123 @@
Ubuntuでsshの認証しようとした時、結構詰まったのでそのメモ書き
参考
OSバージョン:ubuntu16.04LTS
sshに使うやつ:ssh-ldap-pubkey
# とりあえずやりたかったこと
- 踏み台サーバーからクライアントに対してsshをかける
- 認証の際にLDAPサーバーの公開鍵を参照してログイン
- クライアント側には秘密鍵も公開鍵も置かない状態になっていること
# やり方
### クライアントサーバーに必要なものを一括インストール
サーバー
```
apt install slapd libnss-ldap libpam-ldap nslcd
```
クライアント
```
apt install libnss-ldap libpam-ldap nslcd
```
パスワードとかは任意のものを使用。
ldap://はLDAPサーバーのIPを入れてます(基本はドメインだと思う)
ついでに初期設定で聞かれるLDAPのドメインとかはそのサーバーのドメインをdc=ドメイン名で設定
例:)
xxx.example.comの場合
dc=example,dc=com見たな感じ
adminの設定もdcはさっき入力したやつを入力
あとはデフォルト値にしたがってはいはいと進めていきます。
### sshスキーマを作成してデータベースに入れる
CentOSだとデフォルトでスキーマとか入っているらしいのですが、Ubuntuはその辺適当みたいで、むしろ自分で作れって言われました。
デフォルトだとsshのObjactClassがないみたいなのでldifファイルを作成して食べさせます。
このソースをviでコピペして作成する。
↓これ
[openssh-lpk.schema](https://github.com/jirutka/ssh-ldap-pubkey/blob/master/etc/openssh-lpk.schema)
```
vi openssh-lpk.ldif
```
そんで管理者権限でさっき作ったやつをしれっと入れます。
```
ldapadd -x -W -D cn=admin,dc=example,dc=com -H ldap:/// -f openssh-lpk.ldif
```
これでスキーマがスコンと入れは成功
### ssh-ldap-pubkeyのインストール
あとは最近ssh-ldap-pubkeyなるものが使えるようになったみたいなのでそれをクライアントとサーバー両方にインストール
Pythonで書かれているらしくpipをあらかじめインストールしてから使ってください。
```
sudo pip install ssh-ldap-pubkey
```
あと、ライブラリが足りないみたいなのでこれも追加してインストール
```
sudo apt-get install libsasl2-dev python-dev libldap2-dev libssl-dev
```
これでssh-ldap-pubkeyが使えるのでログインしたいLDAPユーザーのホームディレクトリに公開鍵と秘密鍵があることを確認したらLDAPデータベースに公開鍵を以下のコマンドで入れます。
```
ssh-ldap-pubkey add ~/.ssh/id_rsa.pub
```
admin権限で入れろよと怒られた場合はadminをバインドして入れましょう
```
ssh-ldap-pubkey add -D cn=admin,dc=example,dc=com -u demouser ~/.ssh/id_rsa.pub
```
-# クライアント側のsshdの設定の変更
+### クライアント側のsshdの設定の変更
このままだとクライアント側が普通のsshの認証しかしないので/etc/ssh/sshd_configの設定をviで編集。
```
vi /etc/ssh.sshd_config
```
認証する際にssh-ldap-pubkeyを使うように追記します。
その際にはパスワード認証はオフにしておくといいかも
```
AuthorizedKeysCommand /usr/bin/local/ssh-ldap-pubkey-wrapper
AuthorizedKeysCommandUser nobody
```
最後にsshdの再起動して反映させれば完了です。
```
systemctl restart sshd.service
```
あとはLDAPに公開鍵を登録したユーザーでsshできれば完成
参考URL
[ubuntu OpenLDAP](https://help.ubuntu.com/lts/serverguide/openldap-server.html)
[jirutka/ssh-ldap-pubkey](https://github.com/jirutka/ssh-ldap-pubkey)
[Server world LDAPサーバーの設定](https://www.server-world.info/query?os=Ubuntu_16.04&p=openldap)