SSHエイリアスを使用すると、SSHが私の(有効な)Kerberosチケットを無視するのはなぜですか?

SSHエイリアスを使用すると、SSHが私の(有効な)Kerberosチケットを無視するのはなぜですか?

Kerberosチケット認証を使用してSSHを介して大学ネットワークに正常に接続しました。一般的な詳細操作(kinitチケット、ssh user@hostname)は正常に機能します。

質問

ただし、ファイルにsshエイリアスを設定すると、~/.ssh/configsshは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。)

関連情報