He intentado investigar mis opciones, pero nada funciona como lo necesito. La información más útil se encuentra aquí: archivos scp vía host intermedio
Tengo la siguiente configuración: Estoy en la Máquina A. Tengo teclas configuradas en la Máquina B (con el agente ssh habilitado) que me permiten acceder a la Máquina C. (Aparte de esto, la razón de esta configuración es que el acceso a la máquina B está muy restringido, incluyendo la autenticación de dos factores, y cada otra máquina está configurada para permitir solo el acceso de la raíz SSH proveniente de esta máquina.)
El problema es que el código ssh-agent solo se ejecuta para shells de inicio de sesión, no cuando los comandos se ejecutan sobre ssh, por lo que no intenta usar la clave que se encuentra en la Máquina B para acceder a la Máquina C. Este es el código en mi .bashrc
y .profile
:
export SSH_AUTH_SOCK=~/.ssh/ssh-agent.$HOSTNAME.sock
ssh-add -l 2>/dev/null >/dev/null
if [ $? -ge 2 ]; then
ssh-agent -a "$SSH_AUTH_SOCK" >/dev/null
fi
Idealmente, me gustaría poder asignar un alias a algún comando para poder ejecutarlo como scp (por ejemplo, scpproxy localfile user@MachineC:/root/remotefile
). Mi solución actual es, desde la Máquina B, scp -3 user@MachineA:localfile user@MachineC:remotefile
(donde el -3
hace que scp use la máquina local como host intermedio, en lugar del predeterminado donde intenta copiar directamente de A a C), que es menos que perfecto.
Cualquier ayuda es apreciada!