¿Cómo ver el progreso con sshpass y scp en linux?

9

En mi terminal de Linux, estoy usando este comando

sshpass -p "pass" scp -r [email protected]:/cmshome/me/file /home/me/Desktop

para descargar un archivo con una contraseña. Sin el sshpass, puedo ver el progreso de la descarga, pero con él, está en blanco hasta que finaliza y no puedo verlo.

¿Hay alguna manera de verlo con sshpass?

omega
fuente

Respuestas:

4

Creo que lo que pides no es fácil de hacer, tal vez incluso imposible con scripting bash básico.

Por lo tanto, lo siguiente no responde realmente a su pregunta, pero proporciona otro enfoque para su problema.

En lugar de usar sshpass, puede usar el scpcomando simple con una autenticación de clave pública sin contraseña. Vea [1] si no sabe lo que es.

Si tiene la intención de usar scp en scripts para uso local , esta es, en mi opinión, el camino a seguir:

  • generar una clave pública sin contraseña
  • use ssh-copy-idpara agregar su clave pública al servidor

Eso ya es suficiente para poder ejecutar su comando sin ningún aviso:

scp -r [email protected]:/cmshome/me/file /home/me/Desktop

Para los scripts que desea distribuir , sshpass con contraseña clara no es una buena idea, al menos debe usar el indicador "-e" de sshpass y permitir que el usuario proporcione la contraseña como una variable de entorno para una mejor seguridad.

En ese caso, el enfoque de clave pública es un poco menos conveniente, pero aún es posible. Si no puede permitirse el lujo de pedirle al usuario del script que cree una clave pública, puede crear una clave pública sobre la marcha, copiarla en el servidor y ejecutarla scpsin preguntar:

 #!/bin/bash
 KEY="$HOME/.ssh/id_rsa_example"
 if [ ! -e "$KEY" ]; then
     ssh-keygen -t rsa -N "" -f "$KEY"
     sshpass -e ssh-copy-id -i "${KEY}.pub" [email protected]
 fi
 scp -r [email protected]:/cmshome/me/file /home/me/Desktop

Finalmente, existe la posibilidad de usar rsyncpara hacer la barra de progreso en su lugar:

$ rsync -P --rsh="sshpass -p $PASSWORD ssh -l me8" host.ca:/cmshome/me/file /home/me/Desktop

[1] https://help.ubuntu.com/community/SSH/OpenSSH/Keys

nimai
fuente