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 🙂