copiando arquivos em vários túneis ssh

3

Eu tenho uma situação embaraçosa na qual preciso vincular a uma máquina por meio de vários túneis. Detalhes abaixo, mas este comando funciona para sshing em server2 :

ssh -A -t [email protected] ssh -A -t [email protected] ssh -A -t [email protected] ssh -A [email protected]

(por brevidade, esse comando agora é $ssh_cmd ) Como posso copiar arquivos de / para essa máquina usando uma configuração de encapsulamento semelhante? Eu tentei, por exemplo:

rsync --rsh=ssh -e "$ssh_cmd" [email protected]:filename .

que, mesmo depois de remover o -t , falha porque não me dá a oportunidade de inserir minha senha:

debug1: Next authentication method: password
debug1: read_passphrase: can't open /dev/tty: No such device or address
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.

Então, como posso configurar este comando de cópia de tunelamento?

detalhes adicionais:

  • o portal1 bloqueia os comandos do proxy, o que exige um extra desses saltos e impede a conveniência do .ssh/config hackery
  • as autenticações com falha parecem ter me bloqueado pelo menos uma vez

EDIT: larsks sugeriram o uso da autenticação baseada em chave, que funcionou até certo ponto, depois falhou com:

debug1: Host 'server2.host2.org' is known and matches the ECDSA host key.
debug1: Found key in /home/username2/.ssh/known_hosts:3
debug1: read_passphrase: can't open /dev/tty: No such device or address
Host key verification failed.

que eu não entendo; se encontrou a chave porque não a usou?

    
por keflavich 22.04.2016 / 16:08

1 resposta

1

A resposta é, pelo menos em parte, que o meu comando rsync estava errado. O comando ssh acima deve ter excluído a última referência ao nome de usuário / host, ou seja:

ssh -A -t [email protected] ssh -A -t [email protected] ssh -A -t [email protected] ssh -A

em vez do comando mostrado acima. Isso ficou evidente na saída de depuração:

debug1: Sending command: ssh -Av [email protected] -l username2 server2.host2.org rsync --server --sender -vvulogDtprCe.iLs . filename
bash: server2.host2.org: command not found

onde é redundante a especificação do servidor, de tal forma que o nome do servidor estava sendo interpretado como um comando remotamente.

Para a falha de autenticação, a utilização da autenticação baseada em chave resolveu o problema.

Também adicionei -o StrictHostKeyChecking=no para lidar com a falha na validação da chave do host.

    
por 22.04.2016 / 16:43

Tags