- [情報技術] Kerberos認証とSSH
- RapberryPi3B+(Raspbian)にKerberosを入れて、同じRPi3B+のSSHサーバーをケルベロス化しました。その上で、他のPC(Ubuntu)からKerberos認証でログインできるようにしました。
- ●RPi3B+にインストール
$ sudo apt install krb5-admin-server krb5-kdc
- ●Kerberosの設定(レルムの設定)
-
- 設定ファイル `/etc/krb5.conf` を管理者権限で開き、ホスト名を設定します。すでに書かれている設定をしばらく眺めていれば、どういうものかがわかります。
- 設定ファイル `/etc/krb5kdc/kdc.conf` を管理者権限で開き、realmを設定。
- ●データベース作成
$ kdb5_util create -s
- ●プリンシパル作成(ユーザー&サービス)
$ sudo kadmin.local
kadmin.local: addprinc ユーザー名
kadmin.local: addprinc -nokey host/完全修飾ドメイン名
- ユーザー・プリンシパルを作成すると、パスワードを作るように求められます。クライアントで kinit をする際に必要となりますので、パスワードを覚えていてください。
- ●Kerberosデータベースにサービスプリンシパルを登録
$ sudo kadmin.local
kadmin.local: ktadd host/完全修飾ドメイン名
- ●Kerberosデータベースに登録されたか確認
$ klist -ke
- ●サービスを再起動
$ service krb5-kdc restart
$ service ssh restart
- ●クライアントでSSH設定
$ vi /etc/ssh/ssh_config
- KerberosとGSSAPIを使うようにコメントアウトを外してください。
- ●クライアントでキー取得
$ kinit ユーザー名
- ●クライアントからSSH接続
$ ssh -v ユーザー名@完全修飾ドメイン名
- パスワード入力なしでログインできれば成功です。
- もしパスワード入力を求められたら、Kerberos認証が失敗していますので、SSH接続ログを確認してください。エラーメッセージを見られます。
- ここに書いてある情報はKerberosの至極一部です。詳しくは公式ドキュメントをご覧ください。公式サイトもあります。
- ●追記
- Kerberosの設定とデータベースの作成は
$ krb5_newrealm
- で一気にできます。
- 2020-06-09 (Tue) by Canaid SK