rsync O reencaminhamento do agente SSH através de 3 sistemas remotos não funciona com um único comando

3

Eu posso fazer o seguinte:

$local> ssh -A remote1
$remote1> rsync -e "ssh remote2 ssh " remote3:/file .
$remote1>

e isso funciona porque as chaves para remote1 e remote2 estão no meu chaveiro gnome e remote3 não requer uma senha. No entanto, o seguinte falha:

$local> ssh -A remote1 "./scriptOnRemote1.sh"

em que scriptOnRemote1.sh executa exatamente o mesmo comando rsync. Produz os seguintes erros:

Permission denied, please try again.
ssh_askpass: exec(/usr/lib64/ssh/ssh-askpass): No such file or directory
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(235) [Receiver=3.1.0]

A diferença entre as saídas detalhadas desses dois casos começa com

pubkey_prepare: ssh_get_authentication_socket: No such file or directory

Por que isso está acontecendo?

    
por msyriac 19.01.2017 / 00:18

2 respostas

1

Por favor, execute ssh-agent após o logon no host do remote1.

    
por 04.09.2018 / 02:03
1

Está acontecendo porque o script que você está executando não acessa sua chave. Também não deve funcionar se você fez:

ssh -A remote1 'rsync -e "ssh remote2 ssh " remote3:/file .'
    
por 20.01.2017 / 07:14