
Tengo el siguiente problema con una conexión compartida SSH:
# Set up a shared connection
ssh -f -N -M -S "$SSH_CONTROL_SOCKET" root@"$ONE_HOST"
# I can scp *without* the shared connection
scp root@"$ONE_HOST":/etc/hosts /dev/null
# I can execute a remote command *with* the shared connection
ssh -S "$SSH_CONTROL_SOCKET" root@"$ONE_HOST" "date"
# But I can't scp *with* the shared connection
scp -vvv -S "$SSH_CONTROL_SOCKET" root@"$ONE_HOST":/etc/hosts .
Este script da este resultado:
hosts 100% 59 67.8KB/s 00:00
Wed Feb 28 08:23:10 MST 2018
Executing: program /home/myUser/ssh_sharing_socket host myHost.example.com, user root, command scp -v -f /etc/hosts
/home/myUser/ssh_sharing_socket: Permission denied
Mi conexión compartida SSH se autentica mediante una clave pública y un agente SSH.
¿Qué debo hacer para poder realizar scp a través de una conexión compartida?
Respuesta1
ssh
y scp
utilizar la -S
opción para diferentes propósitos.
ssh
:
-Sctl_path
Especifica la ubicación de un socket de control para compartir conexión, o la cadena "none" para deshabilitar la conexión compartida. Consulte la descripción de ControlPath y ControlMaster en ssh_config(5) para obtener más detalles.
scp
:
-Sprogram
Nombre del programa que se utilizará para la conexión cifrada. El programa debe comprender las opciones de ssh(1).
Recibes el error "Permiso denegado" porque scp
estás intentando ejecutar el socket de control como un programa.
Para scp, debes usar la opción-o ControlPath=/path/to/socket
:
scp -vvv -o "ControlPath=$SSH_CONTROL_SOCKET" root@"$ONE_HOST":/etc/hosts .