내가 이해한 바로는 발급 시 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)에서 토큰을 발행한 다음 SSH를 통해 최종 서버(S)에 연결할 수 있는 게이트웨이 서버(G)로 이동 해야 하기 때문에 이 작업을 수행하고 싶습니다 . 내 목표는 토큰이 장기간 유효할 가능성이 높고 투명한 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 키 교환을 수행하는 방법을 알지 못하는 한).