ssh -K のトークン (tgt) を手動で指定するにはどうすればよいですか?

ssh -K のトークン (tgt) を手動で指定するにはどうすればよいですか?

私の理解する限りでは、発行ではssh -K somehostKerberos トークンを使用して認証しますsomehost。トークンとして使用するファイルを指定することは可能ですか?

私のマシンでは Kerberos が適切に設定されていませんが、Kerberos が適切に設定されているマシンから TGT をコピーしただけであることに注意してください。

具体的には、トークンを/tmp/krb5cc_1000(1000 は私の uid) にコピーしたので、klist次のようにトークンが認識されます。

➜  ~ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: [email protected]

Valid starting       Expires              Service principal  
XXXX  
XXXX

これを実行したいのは、現在、sshラップトップ (L) からゲートウェイ サーバー (G) へ接続してトークンを発行し、最終サーバー (S) に ssh する必要があるためです。トークンは長期間有効である可能性があり、透過的な ssh 転送によって開発セットアップが簡素化されることから、 ssh をセットアップすることを目標としていますProxyCommand。ただし、 ssh ProxyCommand では、すべてのキー/トークンがローカル マシン (L) 上に存在している必要があります。

現在、私は次のように ProxyCommand を使用しています。

ProxyCommand ssh gateway nc %h %p

これにより (S) への接続を確立できますが、認証は完了しません。

OpenSSH_7.3p1-hpn14v11, OpenSSL 1.0.2k  26 Jan 2017
debug1: Reading configuration data /home/user/.ssh/config
debug1: /home/user/.ssh/config line 1: Applying options for *
debug1: /home/user/.ssh/config line 10: Applying options for S
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Executing proxy command: exec ssh GW nc S -p 22
debug1: permanently_drop_suid: 1000
debug1: identity file /home/user/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/user/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/user/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/user/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/user/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/user/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/user/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/user/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.3p1-hpn14v11
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1
debug1: match: OpenSSH_6.6.1 pat OpenSSH_6.6.1* compat 0x04000000
debug1: Remote is NON-HPN aware
debug1: Authenticating to S:22 as 'user'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: AUTH STATE IS 0
debug1: kex: algorithm: [email protected]
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: REQUESTED ENC.NAME is '[email protected]'
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: REQUESTED ENC.NAME is '[email protected]'
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY

GSSAPIAuthentication yes私の理解する限り、Kerberos 経由で認証を強制する設定を試しました。

答え1

トークンとして使用するファイルを指定することは可能ですか?

いいえ。SSH は、GSSAPI を使用して表示klistおよびアクセスできるチケットと同じチケットを使用しています。

Kerberos が適切に設定されているマシンから TGT をコピーしました。

これはそうは機能しないと思います。最初から始めて、Kerberos を適切に設定してください。

これにより (S) への接続を確立できますが、認証は完了しません。

このログによると、認証は開始すらされていません。キー交換でハングしますが、これはまったく別の問題です (gssapi キー交換を行わない限り、これは行いません)。

関連情報