%20%E3%82%92%E6%89%8B%E5%8B%95%E3%81%A7%E6%8C%87%E5%AE%9A%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
私の理解する限りでは、発行ではssh -K somehost
Kerberos トークンを使用して認証します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 キー交換を行わない限り、これは行いません)。