[情報技術] 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
で一気にできます。