SSH (SHELL seguro) es un protocolo de red seguro de código abierto que permite a los usuarios iniciar sesión de forma segura en sistemas Linux remotos y otros dispositivos de red. Además, el protocolo se utiliza para la transferencia de archivos entre sistemas Linux utilizando el protocolo de copia segura (SCP) .
Por lo general, SSH solicita a los usuarios las contraseñas antes de iniciar sesión. Sin embargo, puede configurar el inicio de sesión sin contraseña SSH en otro sistema Linux remoto desde su sistema Linux. Esto mejora la confianza y es útil en trabajos cron que requieren copias de seguridad de archivos de forma remota mediante el protocolo SCP.
En esta guía, aprenderá cómo configurar el inicio de sesión SSH sin contraseña usando claves ssh para aumentar la confianza entre dos servidores.
Configurar entorno
ssh client : 66.152.163.19 (Ubuntu 18.04)
ssh remote Host : 173.82.2.236 (CentOS 7)
Generar claves SSH en el sistema cliente ( 66.152.163.19 )
El primer paso para configurar un inicio de sesión sin contraseña es generar claves de autenticación ssh en el sistema cliente. Las claves SSH son claves digitales que crean confianza entre los sistemas Linux.
Para generar las claves ssh, ejecute el comando.
$ ssh-keygen
Se le solicitará el archivo en el que desea guardar la clave. Presione 'Enter' para guardar en el directorio de ubicación predeterminado ( /root/.ssh)
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Pulse Intro.
A continuación, se le pedirá una frase de contraseña. Estamos configurando un inicio de sesión sin contraseña, presione 'Enter' dos veces para omitir.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Presiona 'Enter' en ambas ocasiones.
El resultado completo se muestra a continuación.
Salida de muestra
El ssh-keygen
El comando genera claves ssh públicas y privadas y las almacena en /root/.ssh
directorio.
Para verificar ejecutar:
ls /root/.ssh
Salida de muestra
La clave pública se denota por id_rsa.pub
.
La clave privada se denota por id_rsa
.
Copiar la clave pública ssh al sistema remoto (173.82.2.236)
El siguiente paso es copiar la clave pública al servidor Linux remoto. Esto se logrará usando el ssh-copy-id
comando como se muestra a continuación.
ssh-copy-id remote_username@server_ip_address
En nuestro ejemplo, el comando será:
ssh-copy-id [email protected]
Se le preguntará si está seguro de que desea continuar conectándose. Escribe yes
y presiona 'Entrar'
The authenticity of host '173.82.2.236 (173.82.2.236)' can't be established.
ECDSA key fingerprint is SHA256:U4aOk0p30sFjv1rzgh73uhGilwJ2xtG205QFqzB9sns.
Are you sure you want to continue connecting (yes/no)? yes
A continuación, se le solicitará la contraseña del sistema remoto. Escriba la contraseña y presione 'Enter'
[email protected]'s password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.
El resultado completo se muestra a continuación.
La clave pública ssh se guardará en /root/.ssh/authorized_keys
archivo en el sistema remoto.
Inicio de sesión en el sistema remoto
Después de haber copiado la clave ssh pública en el sistema remoto, ahora puede iniciar sesión sin que se le solicite una contraseña, como se muestra.
ssh server-ip-address
Para nuestro caso, esto será:
ssh 173.82.2.236
Y así es como configura una configuración de SSH sin contraseña desde un sistema cliente Linux a un servidor Linux remoto.
- Elimine la clave pública del sistema cliente. Si cree que la clave privada está comprometida, elimine la clave pública del servidor remoto y vuelva a configurarla.
- El comando SSH anterior funciona sin proporcionar una identificación de usuario porque estamos usando el usuario raíz en ambos servidores. Si configuró el inicio de sesión sin contraseña para otro usuario, indíquelo también en el comando SSH.