10.LDAPユーザでsshログインではWindows端末のteratermからldapユーザでsshログインを行う方法だったが、linuxのldapクライアントからlinuxのldapクライアントへのsshログインもできる。
上図は、サーバB(ldapクライアント)から、サーバC(ldapクライアント)へsshログインする例。
サーバC(ldapクライアント)環境要件
設定項目 | 設定内容 | 備考 |
---|---|---|
ホスト名 | ldapclient2 | |
IPアドレス | 192.168.3.8/24 | 内部環境のためクラスCアドレス |
ゲートウェイ | 192.168.3.1 | |
ネームサーバ | 192.168.3.1 | 自宅のHGWなのでゲートウェイと同じ |
■前提条件
前提条件というほど大したものではないが、
・サーバAのldapサーバの構築が終わっていること。
⇒ldapユーザでsshログインするから当然か。。。
・サーバBとCのldapクライアント構築が終わっていること。
⇒9.OpenLDAPクライアントのインストールと、10.LDAPユーザでsshログインの/etc/sudoers設定が必要。
■ssh秘密鍵の格納
10.LDAPユーザでsshログインはwindows端末がssh秘密鍵を使って、ldapクライアントへsshログインしている。ここで大事なのはログイン元となるwindows端末がssh秘密鍵を持っているということだ。
したがって、上図のログイン元となるサーバBもssh秘密鍵を持っている必要がある。
6.OpenLDAPサーバの構築⑥ -LDAPユーザにssh鍵認証設定で生成したssh秘密鍵「id_ed25519」を、以下の手順でサーバBへ転送する。
①windows端末からteratermでサーバBへ、sshログインする。
・ログインユーザはrootでもldapユーザでもよいが、後述のssh秘密鍵をホームディレクトリに格納する観点から、ここではldapユーザでログインすることにする。ldapユーザでログインする場合は5.OpenLDAPサーバの構築⑤ -LDAPユーザの設定で設定したuid=user01を使用する。下図のユーザ名が「user01」となる。
・ldapユーザでログインする場合はパスフレーズと秘密鍵も必要。パスフレーズは6.OpenLDAPサーバの構築⑥ -LDAPユーザにssh鍵認証設定で設定したパスフレーズ「sshmanager」を入力する。そのあと秘密鍵ボタンをクリックし、6.OpenLDAPサーバの構築⑥ -LDAPユーザにssh鍵認証設定で生成したssh秘密鍵「id_ed25519」を選択する。
・上記の入力が終わったらOKボタンをクリックする。
↓↓↓↓↓↓↓↓↓↓
プロンプトが表示されればOK。
②ホームディレクトリに.sshディレクトリを作成し、アクセス権限を700に設定する。
[user01@ldapclient1 ~]$ pwd /home/user01 [user01@ldapclient1 ~]$ mkdir .ssh [user01@ldapclient1 ~]$ chmod 700 .ssh [user01@ldapclient1 ~]$ ls -lart 合計 16 drwxr-xr-x. 3 root root 20 12月 19 22:47 .. -rw-------. 1 user01 ldapmanager 18 12月 19 22:47 .bash_logout -rw-------. 1 user01 ldapmanager 231 12月 19 22:47 .bashrc -rw-------. 1 user01 ldapmanager 193 12月 19 22:47 .bash_profile -rw-------. 1 user01 ldapmanager 21 12月 19 22:48 .bash_history drwx------. 2 user01 ldapmanager 6 12月 20 21:24 .ssh drwx------. 3 user01 ldapmanager 95 12月 20 21:24 .
ホームディレクトリは/home/<ユーザ名>となるので、pwdコマンドで確認したディレクトリが「/home/user01」となっていればOK。その配下に.sshディレクトリを作成すること。
③ssh秘密鍵「id_ed25519」を、②のteraterm画面へドラッグする。
⇒以下の図のように、SCPする場所を聞かれるので、フルパスで入力しSCPボタンをクリックしてファイル転送を行う。
フルパスは②で作成した.ssh配下へssh秘密鍵を格納するように、「/home/user01/.ssh」と記述する。
④ ②のteraterm画面でlsコマンドを実行し、.sshディレクトリ配下にssh秘密鍵が転送されたことを確認する。
[user01@ldapclient1 ~]$ cd .ssh [user01@ldapclient1 .ssh]$ ls -lrt 合計 4 -rw-r--r--. 1 user01 ldapmanager 464 12月 9 18:25 id_ed25519
実は秘密鍵も公開鍵と同様に、アクセス権限が開きすぎていると使えない。そのため、転送した秘密鍵もアクセス権限を600に変更する必要がある。
⑤ ④のssh秘密鍵のアクセス権を、chmodコマンドで600に変更する。
[user01@ldapclient1 .ssh]$ chmod 600 id_ed25519 [user01@ldapclient1 .ssh]$ ls -lart 合計 8 -rw-------. 1 user01 ldapmanager 464 12月 9 18:25 id_ed25519
■サーバB⇒サーバCへsshログイン
ssh秘密鍵の格納が終わったら、いよいよサーバB⇒サーバCへsshログイン。
[user01@ldapclient1 .ssh]$ ssh 192.168.3.8 Enter passphrase for key '/home/user01/.ssh/id_ed25519': Last login: Wed Dec 20 21:27:34 2017 from 192.168.3.7 [user01@ldapclient2 ~]$
「Enter passphrase for key ‘/home/user01/.ssh/id_ed25519’:」というプロンプトが表示されれば、パスフレーズを入力してログインできる。ログイン後のプロンプトが「<ldapユーザ名>@<サーバCのホスト名>」になっており、無事にsshログインできた!
ためしにsudoコマンドで適当にコマンドをたたいてみる。
[user01@ldapclient2 ~]$ sudo systemctl status sssd あなたはシステム管理者から通常の講習を受けたはずです。 これは通常、以下の3点に要約されます: #1) 他人のプライバシーを尊重すること。 #2) タイプする前に考えること。 #3) 大いなる力には大いなる責任が伴うこと。 パスワード: ● sssd.service - System Security Services Daemon Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/sssd.service.d mqjournal.conf Active: active (running) since 水 2017-12-20 21:06:41 JST; 2h 6min ago Main PID: 14492 (sssd) CGroup: /system.slice/sssd.service tq14492 /usr/sbin/sssd -i -f tq14493 /usr/libexec/sssd/sssd_be --domain default --uid 0 --gid 0... tq14494 /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 --debug-to-file... tq14495 /usr/libexec/sssd/sssd_sudo --uid 0 --gid 0 --debug-to-fil... tq14496 /usr/libexec/sssd/sssd_pam --uid 0 --gid 0 --debug-to-file... mq14497 /usr/libexec/sssd/sssd_ssh --uid 0 --gid 0 --debug-to-file... 12月 20 21:06:40 ldapclient2 systemd[1]: Starting System Security Services .... 12月 20 21:06:40 ldapclient2 sssd[14492]: Starting up 12月 20 21:06:40 ldapclient2 sssd[be[default]][14493]: Starting up 12月 20 21:06:40 ldapclient2 sssd[sudo][14495]: Starting up 12月 20 21:06:40 ldapclient2 sssd[pam][14496]: Starting up 12月 20 21:06:41 ldapclient2 sssd[ssh][14497]: Starting up 12月 20 21:06:41 ldapclient2 sssd[nss][14494]: Starting up 12月 20 21:06:41 ldapclient2 systemd[1]: Started System Security Services D.... Hint: Some lines were ellipsized, use -l to show in full.
初回sudoなので日本語で注意文が表示されるが気にせず。sudoで聞かれるパスワードは5.OpenLDAPサーバの構築⑤ -LDAPユーザの設定のuserPassword属性で設定した「ldapuser01」を入力する。ssh鍵認証のパスフレーズではないので注意すること。
これでサーバB(ldapクライアント)からサーバC(ldapクライアント)へsshログインは完了!