GNU/Linux >> Tutoriales Linux >  >> Linux

Por qué 'sshpass' no es la forma correcta de automatizar las transferencias de archivos en Linux

Pregunta: Me han asignado una tarea para automatizar las transferencias de archivos entre máquinas remotas mediante scp. Pero no estoy seguro de cómo dar una contraseña como parámetro al scp dominio. Uno de mis amigos sugirió usar 'sshpass ' (puede tomar la contraseña como argumento), pero mi jefe dice "sshpass no es la forma correcta de hacerlo y no es seguro “. ¿Qué sugieres?

– Ravi

Respuesta:

Ravi, tu amigo tiene la respuesta a tu pregunta, pero tu jefe tiene razón . ‘sshpass La utilidad toma la contraseña como argumento, pero es menos segura. En su lugar, debe usar claves SSH para transferencias seguras de archivos.

Probemos ambos métodos y veamos cuál es más seguro.

Uso de sshpass

Instalar 'sshpass ' usando el siguiente comando:

$ yum install sshpass

Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package sshpass.x86_64 0:1.05-1.el5 set to be updated
--> Finished Dependency Resolution

Una vez instalado, puede usarlo de la siguiente manera:

sshpass -p "password" scp file.txt user@remote_machine:

Precaución: Dado que la contraseña se menciona en el comando, otros usuarios que inicien sesión en la máquina pueden verla usando 'w ' dominio. Para evitarlo, puede almacenar la contraseña en un archivo y pasar el archivo como argumento al comando (que se muestra a continuación):

$ echo "password" > passfile.txt
$ chmod 600 passfile.txt
$ sshpass -f passfile.txt scp file.txt user@remote_machine:

Precaución: La contraseña todavía se puede rastrear desde los archivos de registro o el historial.

Entonces el veredicto es que "sshpass" no es un método seguro . En su lugar, como sugirió su jefe, debe usar claves SSH seguras para conexiones sin contraseña.

Uso de claves ssh seguras

Genere claves ssh en la máquina de origen como se muestra a continuación:

[machine-A ]$ ssh-keygen -t rsa
[machine-A ]$ scp ~/.ssh/id_rsa.pub user@machine-B:.ssh/authorized_keys

Eso es todo, ha configurado una conexión ssh sin contraseña entre la máquina A y la máquina B. Intente transferir archivos sin necesidad de ingresar la contraseña:

$ scp file.txt user@remote_machine:

¡Hecho! Ravi, a veces los JEFES tienen razón 🙂


Linux
  1. ¿Por qué la función de cierre se llama release en `struct file_operations` en el kernel de Linux?

  2. El comando sed de Linux no cambia el archivo de destino

  3. ¿Por qué necesitamos el archivo .so.1 en Linux?

  4. ¿Por qué pr_debug del kernel de Linux no da ningún resultado?

  5. No se permite usar chown para cambiar el propietario del grupo de un directorio... ¿Por qué?

Introducción al sistema de archivos de Linux

Cómo actualizar a Linux Mint 20.3:la forma correcta

Cómo editar archivos PDF en Linux de la manera más fácil posible

Comprender los niveles de ejecución de Linux de la manera correcta

EndeavourOS – Aprende Arch de la manera correcta

En Linux, ¿es posible cifrar una carpeta/partición de manera que nadie pueda acceder a ella sin la contraseña?