Configuración de inicio de sesión SSH sin contraseña para múltiples servidores remotos usando script
- 5054
- 124
- Sta. Enrique Santiago
La autenticación basada en la clave SSH (también conocida como autenticación de clave pública) permite la autenticación sin contraseña y es una solución más segura y mucho mejor que la autenticación de contraseña. Una ventaja importante del inicio de sesión sin contraseña de SSH, y mucho menos la seguridad es que permite la automatización de varios tipos de procesos de servicio cruzado.
Lectura relacionada: Cómo asegurar y endurecer el servidor OpenSshEn este artículo, demostraremos cómo crear un par de claves SSH y copiar la clave pública a múltiples hosts de Linux remotos a la vez, con un script de shell.
Crear una nueva tecla SSH en Linux
Primero, genere el par de teclas SSH (la clave privada/de identidad que un cliente SSH usa para autenticarse al iniciar sesión en un servidor SSH remoto y la clave pública almacenada como una clave autorizada en un sistema remoto que ejecuta un servidor SSH) utilizando el ssh-keygen Comando de la siguiente manera:
# ssh-keygenGenerar la tecla SSH en Linux
Cree un script de shell para inicios de sesión remotos de Mulitple
A continuación, cree un script de shell que ayude a copiar una clave pública para múltiples hosts remotos de Linux.
# vim ~/.copia de bin/ssh.mierda
Copie y pegue el siguiente código en el archivo (reemplace las siguientes variables en consecuencia NOMBRE DE USUARIO
- el nombre de usuario para conectarse con, Host_file
- un archivo que contiene la lista de nombres de host o direcciones IP, y Error_file
- un archivo para almacenar cualquier error de comando ssh).
#!/bin/bash NOMBRE DE USUARIO= "raíz" Host_file= "/root/hosts" Error_file= "/tmp/ssh-copy_error.txt "public_key_file =" $ 1 "si [ ! -f $ public_key_file]; luego echo "archivo '$ public_key_file' no encontrado!"Salir 1 FI si [ ! -f $ host_file]; luego echo "archivo '$ host_file' no encontrado!"Salir 2 fi para IP en 'Cat $ host_file'; do ssh-copy-id -i $ public_key_file [correo electrónico protegido] $ ip 2> $ error_file resultado = $? if [$ resultado -eq 0]; Luego se eco "" echo "clave pública copiada con éxito a $ ip" echo "" else eco "$ (cat $ error_file)" echo salida 3 fi eco "" hecho
Guarde el archivo y cierre.
Luego haga que el script sea ejecutable con el chmod comando como se muestra.
# chmod +x ssh-copy.mierda
Ahora corre el copia ssh.mierda
Script y especifique su archivo de clave pública como el primer argumento como se muestra en la captura de pantalla:
# ./copia ssh.sh /root /.ssh/pro-rsa.pubEjecutar el script de copia ssh
A continuación, usa agente ssh
Para administrar sus claves, que contiene su clave privada descifrada en la memoria y la usa para autenticar los inicios de sesión. Después de comenzar el agente ssh
, Agregue su clave privada de la siguiente manera:
# eval "$ (ssh-agent -s)" # ssh-add ~/.ssh/pro_rsaIniciar agente SSH
Iniciar sesión en un servidor remoto de Linux sin contraseña
Ahora puede iniciar sesión en cualquiera de sus hosts remotos sin proporcionar una contraseña para la autenticación de usuarios de SSH. De esta manera, puede automatizar procesos de servidor cruzado.
# ssh [correo electrónico protegido]SSH inicio de sesión sin contraseña
Eso es todo lo que tuvimos para ti! Si tiene alguna contribución para hacer particularmente para mejorar el script de shell, háganos saber a través del formulario de comentarios a continuación.
- « 9 comandos útiles para obtener información de CPU en Linux
- Cómo cambiar (SU) a otra cuenta de usuario sin contraseña »