Eu tenho um script que precisa rsync alguns arquivos para uma máquina remota. O comando rsync tem esta aparência:
rsync -avz -e 'ssh -vv -o IdentitiesOnly=yes -i /data/credentials/rsync2.key' \
--rsync-path="mkdir -p ~/new_data/12345/ && rsync" \
/data/new_data/ some_user@$REMOTE_HOST_IP:~/new_data/12345/
A saída do script se parece com:
... debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug2: dh_gen_key: priv key bits set: 134/256 debug2: bits set: 505/1024 debug1: Server host key: RSA XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX debug1: read_passphrase: can't open /dev/tty: No such device or address Host key verification failed. rsync: connection unexpectedly closed (0 bytes received so far) [sender] rsync error: unexplained error (code 255) at io.c(605) [sender=3.0.9]
Parece-me que o ssh está tentando usar uma frase secreta na chave. Não deveria, a chave não requer uma frase secreta. Além disso, tenho certeza de que a mensagem sobre /dev/tty
não é totalmente exata, pois meu script confirma que /dev/tty
existe ( ls -l
mostra: crw-rw-rw- 1 root root 5, 0 Feb 23 19:37 /dev/tty
). Eu também sei que o arquivo de chaves é válido desde que eu possa conectar manualmente ao host remoto via ssh usando a chave.
O problema é que meu script está sendo executado em um contêiner docker e não sei como isso pode afetar o rsync e o ssh.