Script Sftp para transferir archivos en Linux con contraseña

SFTP le permite transferir archivos de forma segura en Linux. Pero a veces es posible que necesite transferir archivos automáticamente usando SFTP. En tales casos, el mensaje de contraseña puede representar un obstáculo. En este artículo, veremos cómo crear un script SFTP para transferir archivos en Linux, con contraseña. Necesitará usar una biblioteca de terceros como keychain, sshpass o expect que proporcione automáticamente su contraseña SFTP para simplificar su vida. Para nuestro artículo, usaremos SSHpass. También veremos cómo configurar la autenticación de contraseñas sin demora sin usar SSHpass, usando ssh-copy.

Qué es SSHpass

SSHPass es una sencilla herramienta de línea de comandos que le permite proporcionar contraseñas al símbolo del sistema y a los scripts para que pueda automatizar las tareas que requieren autenticación, sin interrupciones. Facilita la autenticación de contraseñas no interactiva.

Script Sftp para transferir archivos en Linux con contraseña

Estos son los pasos para transferir archivos en Linux con contraseña

Establecer contraseña SSH

Abra terminal y ejecute el siguiente comando para establecer su contraseña SSH. Reemplace su contraseña aquí con su contraseña de SSH.

export SSHPASS=your-password-here

Transferir archivos en Linux

Ejecute el siguiente comando para transferir archivos en Linux. Reemplace usuario con su nombre de usuario SFTP, host remoto con su dirección de host SFTP, /data con la ubicación de la carpeta remota y su archivo.inicie sesión con el nombre de archivo que desea transferir.

sshpass -e sftp -oBatchMode=no -b - sftp-user@remote-host << ! cd /data put your-file.log bye!

Puede agregar los dos comandos anteriores a su archivo de script de shell para obtener su script SFTP para transferir archivos mediante contraseña.

De forma alternativa

Puede utilizar alternativamente la función ssh-copy para hacer lo mismo. En este enfoque, deberá crear una clave pública para su cliente y agregar esta clave pública en su servidor remoto. Una vez que lo haga, el servidor remoto siempre usará su clave pública y dejará de solicitarle la contraseña.

Abra terminal y ejecute el siguiente comando para crear una clave pública para su cliente.

ssh-keygen

Se le preguntarán 3 preguntas, simplemente presione la tecla enter para cada solicitud. Esto generará tu clave pública.

Ejecute el siguiente comando para copiar su clave pública a su servidor remove SFTP. Reemplace el host remoto con la dirección IP del host de su servidor SFTP.

ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host

Se le pedirá que acceda/rechace la clave del host remoto. Presiona y acéptalo. A continuación, se le pedirá que introduzca la contraseña de su servidor remoto. Introdúzcalo para agregar correctamente su clave pública a la lista de claves públicas aceptadas del servidor remoto. Usted será capaz de encontrarlo en .archivo ssh / authorized_key.

De ahora en adelante, no se le solicitará una contraseña mientras usa scp, ssh o sftp.

En este artículo, hemos analizado dos formas diferentes de transferir archivos utilizando SFTP.

leer También:

Cómo Invertir Cadena en Python
Cómo Conectarse a la base de datos PostgreSQL mediante Python
Cómo Eliminar Snap en Ubuntu
Cómo Seleccionar Registros Aleatorios en MySQL
Cómo Cambiar Recursivamente el Propietario del directorio en Linux

Leave a Reply

Tu dirección de correo electrónico no será publicada.