
Estou tendo o seguinte problema com uma conexão compartilhada 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 fornece esta saída:
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
Minha conexão compartilhada SSH é autenticada usando uma chave pública e um agente SSH.
O que devo fazer para poder usar o scp em uma conexão compartilhada?
Responder1
ssh
e scp
use a -S
opção para finalidades diferentes.
ssh
:
-Sctl_path
Especifica a localização de um soquete de controle para compartilhamento de conexão ou a string “none” para desabilitar o compartilhamento de conexão. Consulte a descrição de ControlPath e ControlMaster em ssh_config(5) para obter detalhes.
scp
:
-Sprograma
Nome do programa a ser usado para a conexão criptografada. O programa deve compreender as opções do ssh(1).
Você está recebendo o erro "Permissão negada" porque scp
está tentando executar o soquete de controle como um programa.
Para scp, você deve usar a opção-o ControlPath=/path/to/socket
:
scp -vvv -o "ControlPath=$SSH_CONTROL_SOCKET" root@"$ONE_HOST":/etc/hosts .