Kerberosチケット認証を使用してSSHを介して大学ネットワークに正常に接続しました。一般的な詳細操作(kinitチケット、ssh user@hostname)は正常に機能します。
質問
ただし、ファイルにsshエイリアスを設定すると、~/.ssh/config
sshはKerberosを完全に無視し、パスワードの入力を求めます。 (下記のデバッグ出力を参照してください。)
なぜこれですか? Kerberosを使用するようにどのように設定しますか?
注:Kerberosを使用した一般的なSSH操作は、SSHエイリアスを使用する前と後でも機能し続けます。また、ログインパスワードが提供されると、SSHエイリアスは期待どおりに機能します。
(システム:Mac OS 10.11.4、Darwinカーネルバージョン15.4.0、OpenSSH_6.9p1、LibreSSL 2.1.8、Kerberos 5バージョン1.7)
デバッグ出力
CLでSSHを実行したときに-vvv
詳細なデバッグ情報を追加した後、出力を比較しました。かなり異なる部分を含めました。
$ ssh -vvv [ssh-alias]
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup password
debug3: remaining preferred: ,keyboard-interactive,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
[email protected]'s password:
debug2: we sent a password packet, wait for reply
debug1: Authentication succeeded (password).
Authenticated to login.engin.umich.edu ([141.213.74.56]:22).
$ ssh -vvv [user@host]
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup gssapi-keyex
debug3: remaining preferred: gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_is_enabled gssapi-keyex
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug2: we did not send a packet, disable method
debug3: authmethod_lookup gssapi-with-mic
debug3: remaining preferred: publickey,keyboard-interactive,password
debug3: authmethod_is_enabled gssapi-with-mic
debug1: Next authentication method: gssapi-with-mic
debug3: Trying to reverse map address 141.213.74.58.
debug2: we sent a gssapi-with-mic packet, wait for reply
debug1: Delegating credentials
debug1: Delegating credentials
debug1: Authentication succeeded (gssapi-with-mic).
Authenticated to login.engin.umich.edu ([141.213.74.58]:22).
答え1
私が見ることができるように、Kerberos構成は完全修飾されていないホスト名(gato.example.org
)ではなく完全修飾ホスト名(gato
)を処理し、完全修飾されていないホスト名を使用すると、ssh
デバッグ行をテストすると次の結果が生成されます。
debug1: Next authentication method: gssapi-with-mic
debug1: Miscellaneous failure (see text)
Error from KDC: LOOKING_UP_SERVER while looking up 'host/[email protected]' (cached result, timeout in 1089 sec)
/etc/krb5.keytab
これは、Kerberosホスト上のファイルに通常正規化されたホストプリンシパルエントリのみがあるためです。
[root@gato ~]# strings /etc/krb5.keytab | head -3
EXAMPLE.ORG
host
gato.example.org
すべてのログは完全修飾login.engin.umich.edu
ホスト名を使用しているように見えるため、問題は異なる可能性がありますが、通常、kerberosを処理するときは完全修飾ホスト名を手動で強制することが最善です~/.ssh/config
。
Host gato.example.org gato bubba
Hostname gato.example.org
またはCanonicalizeHostname
キーワード別(詳細と考慮事項を参照ssh_config(5)
)
注目すべきもう一つのことは、これがlogin.engin.umich.edu
ホストプールであることです。テストする必要があるのは、プール内の特定のノードがkerberosに対して誤って設定され、パスワード認証に戻されるかどうかです。ただし、次の項目を含めるように編集する必要があります/etc/hosts
。
141.213.74.56 login.engin.umich.edu
完了したら、テスト項目を削除することを忘れないでください。 (KerberosではIPアドレスを使用するのが悪いため、ホスト名を使用する必要があるため、テストが必要です/etc/hosts
。)