Creando acceso SSH utilizando Public / Private keys en Linux
Primeramente, es bueno mencionar que la conexión vía ssh viene a suplantar el telnet, cuyo envío de información de "usuario" y "contraseña" era en texto plano, lo que podía ser detectado fácilmente por cualquier network packet analyzer. Como forma de asegurar un poco más la conexión vía ssh, es a través del uso de llaves (keys).
* Desde la máquina local ejecutar lo siguiente:
Paso 1 - Crear el directorio correspondiente.
user@LocalPC:~$ mkdir .ssh
user@LocalPC:~$ cd .ssh
Paso 2 - Generamos las llaves públicas / privadas.
user@LocalPC:~$ ssh-keygen -t rsa
* El comando anteriormente ejecutado, creará dos archivos: file_rsa y file_rsa.pub todo depende de como los nombremos al ejecutar el comando anterior. Por defecto crea los archivos id_rsa e id_rsa.pub
* El archivo id_rsa.pub es el que mandaremos al servidor donde queremos conectarnos por ssh sin uso de passwords.
Paso 3 - Copiar el archivo id_rsa.pub en el servidor
user@LocalPC:~$ scp id_rsa.pub user@Server:/route/to/copy/
* /route/to/copy/ es la ruta que deseamos copiar.
Paso 4 - Asegurar el directorio y las llaves generadas
user@LocalPC:~$ chmod 700 .ssh/
user@LocalPC:~$ chmod 600 .ssh/id_rsa
Paso 5 - Ejecutamos el siguiente comando para generar la llave en el servidor.
user@LocalPC:~$ ssh-copy-id user@Servidor
* Ahora nos conectamos al servidor
Paso 6 - Nos conectamos al servidor
user@LocalPC:~$ ssh user@Servidor
Paso 7 - Editamos el archivo de configuración del servicio ssh para evitar conexiones autenticadas por contraseñas.
user@Servidor:~$ sudo vi /etc/ssh/sshd_config
Buscamos la línea PasswordAuthentication y le quitamos el símbolo "#" para descomentarla y le ponemos en vez de "Yes" que trae por defecto un "No". Guardamos la configuración.
¡Listo!
Con solo ejecutar user@LocalPC:~$ ssh user@Servidor estaremos accesando a nuestro servidor sin necesidad de introducir la contraseña.
¡Ojo! Es bueno recordar la contraseña que fue introducida al momento de generar las llaves.
* Desde la máquina local ejecutar lo siguiente:
Paso 1 - Crear el directorio correspondiente.
user@LocalPC:~$ mkdir .ssh
user@LocalPC:~$ cd .ssh
Paso 2 - Generamos las llaves públicas / privadas.
user@LocalPC:~$ ssh-keygen -t rsa
* El comando anteriormente ejecutado, creará dos archivos: file_rsa y file_rsa.pub todo depende de como los nombremos al ejecutar el comando anterior. Por defecto crea los archivos id_rsa e id_rsa.pub
* El archivo id_rsa.pub es el que mandaremos al servidor donde queremos conectarnos por ssh sin uso de passwords.
Paso 3 - Copiar el archivo id_rsa.pub en el servidor
user@LocalPC:~$ scp id_rsa.pub user@Server:/route/to/copy/
* /route/to/copy/ es la ruta que deseamos copiar.
Paso 4 - Asegurar el directorio y las llaves generadas
user@LocalPC:~$ chmod 700 .ssh/
user@LocalPC:~$ chmod 600 .ssh/id_rsa
Paso 5 - Ejecutamos el siguiente comando para generar la llave en el servidor.
user@LocalPC:~$ ssh-copy-id user@Servidor
* Ahora nos conectamos al servidor
Paso 6 - Nos conectamos al servidor
user@LocalPC:~$ ssh user@Servidor
Paso 7 - Editamos el archivo de configuración del servicio ssh para evitar conexiones autenticadas por contraseñas.
user@Servidor:~$ sudo vi /etc/ssh/sshd_config
Buscamos la línea PasswordAuthentication y le quitamos el símbolo "#" para descomentarla y le ponemos en vez de "Yes" que trae por defecto un "No". Guardamos la configuración.
¡Listo!
Con solo ejecutar user@LocalPC:~$ ssh user@Servidor estaremos accesando a nuestro servidor sin necesidad de introducir la contraseña.
¡Ojo! Es bueno recordar la contraseña que fue introducida al momento de generar las llaves.