Pelo que entendi, a emissão de ssh -K somehost
usará um token do kerberos para autenticar com somehost
. É possível especificar qual arquivo usar como token?
Observe que o Kerberos não está configurado corretamente na minha máquina, mas eu apenas copiei o TGT de uma máquina na qual o Kerberos está configurado corretamente.
Mais especificamente, copiei o token para /tmp/krb5cc_1000
(onde 1000 é meu uid), para que klist
reconheça o token da seguinte forma:
➜ ~ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: [email protected]
Valid starting Expires Service principal
XXXX
XXXX
Eu gostaria de fazer isso, pois atualmente eu preciso de ssh
do meu Laptop (L) para um servidor de gateway (G) no qual eu posso emitir o token e depois o ssh para o servidor final (S). Dado que o token pode ser válido por um período de tempo estendido e que o encaminhamento ssh transparente simplificaria a minha configuração de desenvolvimento, eu pretendo configurar o ssh ProxyCommand
. No entanto, o ssh ProxyCommand requer que todas as chaves / tokens estejam presentes na máquina local (L).
Atualmente, estou usando um ProxyCommand da seguinte forma:
ProxyCommand ssh gateway nc %h %p
Isso me permite estabelecer uma conexão com (S), no entanto, a autenticação não é concluída:
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
Eu tentei definir GSSAPIAuthentication yes
, o que deve forçar a autenticação via kerberos tanto quanto eu entendo.