¿Cómo puedo copiar archivos de un servidor a otro usando scp o sftp en un script de shell?

¿Cómo puedo copiar archivos de un servidor a otro usando scp o sftp en un script de shell?

Actualmente estoy creando una secuencia de comandos en la que quiero copiar archivos de un servidor a otro usando scpo sftp; Lo que me confunde es la autenticación.

Si lo uso scp, ¿cómo daré la contraseña?

Respuesta1

Para este tipo de uso automatizado, no debería utilizar la autenticación de contraseña, debería utilizar la autenticación basada en claves. Con la conexión basada en claves, la conexión se realizará sin necesidad de solicitar ninguna contraseña.

Debe generar un par de claves en el lado donde está utilizando el cliente SSH y luego copiar su clave pública al servidor SSH. Encontrarás infinitas páginas sobre cómo lograrlo, pero aquí tienes una:

https://www.linode.com/docs/security/authentication/use-public-key-authentication-with-ssh/

Respuesta2

Utilice claves ssh para mayor seguridad

O puedes instalar sshpass y hacer algo como:

sshpass -p "password" scp file.txt user@machine:/path

información relacionada