
Tengo host bastión. Me conecto al host bastión usando nombre de usuario/contraseña. Y tengo una clave privada para el servidor de destino. Fluir:
Local Machine -> Bastion -> Destination
Sé que es peligroso usarlo.Reenvío de agentesporque alguien puede leer miarchivo de socket(Si tienen acceso root al host bastión) mientras mila sesión está abiertay acceder al servidor de destino, por lo que debería usar¡Comando proxy!
Ahora solo estoypruebas cómo acceder al servidor de destinosin clave privadasi tengoacceso al servidor bastión- ¿Qué tan peligroso es el reenvío de agentes?
Host bast
Hostname X.X.X.X
ForwardAgent yes
User bastion
Preguntas:
He visto que hay información sobre el agente activo en la siguiente ubicación en el servidor bastión: Ej: /tmp/ssh-{nombre}/agent.[PID]. Tengo acceso root pero no puedo leer este archivo. creo que solola identificación del proceso es suficientepara este archivo,¿No lo es?
Si el reenvío de agentes está habilitado, ¿dónde puedo encontrar el archivo de socket? trato de encontrar en/proc/pid/fd/ubicación, donde vi varios archivos de socket.
¿Cómo puedo acceder al servidor de destino utilizando el archivo socket? (Cómo acceder al servidor de destino a través de ssh usando un archivo socket)
Intentó encontrar archivos de socket aquí:
/proc/PID/fd/
Y luego prueba este comando para cada socket 3,4,5,9,11:
ssh -p 2072 -o "ProxyCommand socat - UNIX-CLIENT:/proc/PID/fd/11" app@[DESTINATION_HOST_URL]
Resultado:
2018/08/26 01:53:31 socat[13552] E connect(5, AF=1 "/proc/13510/fd/11", 19): Connection refused
ssh_exchange_identification: Connection closed by remote host
Registro:
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 58: Applying options for *
debug1: Executing proxy command: exec socat - UNIX-CLIENT:/proc/14003/fd/11
debug1: permanently_set_uid: 0/0
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4
debug1: permanently_drop_suid: 0
2018/08/26 03:10:17 socat[14073] E connect(5, AF=1 "/proc/14003/fd/11", 19): Connection refused
ssh_exchange_identification: Connection closed by remote host
Respuesta1
Acabo de cambiar el valor de SSH_AUTH_SOCK
entonces porque ssh-add -l
tenía una clave cargada.
Para resumir: es peligroso utilizar el reenvío de agentes porque si tiene acceso de root al host bastión, puede robar la clave durante toda la sesión abierta. ¡Solo necesitas cambiarte SSH_AUTH_SOCK
y listo!