%20para%20ssh%20-K%3F.png)
Hasta donde tengo entendido, la emisión ssh -K somehost
utilizará un token Kerberos para autenticarse con somehost
. ¿Es posible especificar qué archivo usar como token?
Tenga en cuenta que Kerberos no está configurado correctamente en mi máquina, pero solo copié el TGT de una máquina en la que Kerberos está configurado correctamente.
Más específicamente, copié el token /tmp/krb5cc_1000
(donde 1000 es mi uid), para que klist
reconozca el token de la siguiente manera:
➜ ~ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: [email protected]
Valid starting Expires Service principal
XXXX
XXXX
Me gustaría hacer esto como lo necesito actualmente ssh
desde mi computadora portátil (L) a un servidor de puerta de enlace (G) en el que puedo emitir el token y luego enviar ssh al servidor final (S). Dado que el token puede ser válido por un período de tiempo prolongado y que el reenvío ssh transparente simplificaría mi configuración de desarrollo, mi objetivo es configurar ssh ProxyCommand
. Sin embargo, ssh ProxyCommand requiere que todas las claves/tokens estén presentes en la máquina local (L).
Actualmente estoy usando un ProxyCommand de la siguiente manera:
ProxyCommand ssh gateway nc %h %p
Esto me permite establecer una conexión con (S), sin embargo, la autenticación no finaliza:
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
Intenté configurar GSSAPIAuthentication yes
lo que debería forzar la autenticación a través de Kerberos, según tengo entendido.
Respuesta1
¿Es posible especificar qué archivo usar como token?
No. SSH utiliza el mismo ticket que es visible klist
y accesible mediante GSSAPI.
Copié el TGT de una máquina en la que Kerberos está configurado correctamente.
No creo que así sea como funciona. Comience desde el principio y configure Kerberos correctamente.
Esto me permite establecer una conexión con (S), sin embargo, la autenticación no finaliza:
La autenticación ni siquiera comenzó según este registro. Se cuelga en el intercambio de claves, lo cual es completamente otro problema (a menos que realice el intercambio de claves gssapi, lo cual no hace).