GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo reenviar una clave Ssh ya reenviada a Tmux?

Me estoy conectando a través de SSH desde una máquina donde se almacenan mis claves, reenvío a una segunda máquina y luego trato de usar las claves desde tmux. Parece que "pierdo" el reenvío al ingresar a tmux. ¿Cómo puedo "reenviar de nuevo" para poder usar mis claves desde dentro de tmux?

$ ssh [server] -o ForwardAgent=yes
$ git pull       # Succeeds.
$ /bin/bash
$ git pull       # Still succeeds, despite new shell.
$ exit
$ tmux attach
$ git pull       # Permission denied (publickey)

Respuesta aceptada:

Si está adjuntando una sesión tmux ya existente, el shell no hereda las variables de entorno de su shell de inicio de sesión. En particular, no heredará las variables de entorno del agente ssh.

Prueba esta solución:

  1. Cree este script y colóquelo en $HOME/.ssh/saveagent

    #!/bin/sh
    SSHVARS="SSH_CLIENT SSH_TTY SSH_AUTH_SOCK SSH_CONNECTION DISPLAY"
    
    for var in ${SSHVARS} ; do
      echo "export $var="$(eval echo '$'$var)""
    done 1>$HOME/.ssh/latestagent
    
  2. Agréguelo a su secuencia de comandos de inicio de shell. Por ejemplo, si usa bash:

    echo '. ~/.ssh/saveagent' >> ~/.bash_login
    
  3. Después de adjuntar el tmux, ejecute . $HOME/.ssh/latestagent


Linux
  1. Cómo generar un par de claves SSH (con ejemplos)

  2. Cómo configurar la autenticación basada en clave SSH en Linux

  3. Cómo configurar claves SSH

  4. ¿Cómo SSH en un directorio específico?

  5. Cómo usar SSH en un contenedor Docker

Cómo generar una clave SSH en CentOS 8

Cómo crear una frase de contraseña de clave SSH en Linux

Cómo SSH en una Raspberry Pi [Consejo para principiantes]

Cómo agregar una clave pública SSH al servidor

Cómo usar SSH en un contenedor Docker

Cómo mejorar la seguridad SSH en Ubuntu 18.04