Crear conexión segura por SSH para no tener que escribir la contraseña al iniciar sesión
Crear conexión SSH y no tener que escribir contraseña
Pasos
- crear un "ID" ssh a nuestra maquina cliente
- copiar ese identificador en la maquina remota (servidor)
- conectarnos (ya no debe pedir contraseña)
El contexto
Normalmente cuando nos conectamos se suele usar la siguiente sintaxis:
ssh nombre-de-usuario@espacio.en-un-servidor.comEsto nos lanzará una linea pidiendo que introduzcamos la contraseña. Esta práctica no es recomendable ya que si deseamos lanzar rutinas en diferentes sesiones tendremos que estar escribiendo la clave y por otro lado que estamos sujetos a que la dejemos escrita por algún lado y la puedan copiar.
Esto se resuelve identificando nuestra maquina cliente e indicandole al servidor que esta tendrá acceso directo.
Creando el ID ssh
ssh-keygen
# a veces hay que usar sudo. En ese caso le indicamos para que usuario (en tu maquina local "laptop, sobremesa, etc") queremos crear la clave
sudo -u usuariox ssh-keygen
#esto mostrará la siguiente salida:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/usuariox/.ssh/id_rsa):
/Users/usuariox/.ssh/id_rsa already exists.
# solo te pregunta esto si ya tuvieras alguna clave generada.
# presta atención con esto, pq si ya tuvieras alguna y la estas utilizando para acceder a otros
# servidores no podras conectarte.
Overwrite (y/n)? y
# esto lo dejamos en blanco de lo contrario estariamos en lo mismo, deberiamos introducir la contraseña
# que aportemos en cada sesión
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/usuariox/.ssh/id_rsa.
Your public key has been saved in /Users/usuariox/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:vmT0vwVVjg4Ei7JjpuQkgOKvrwFogmx3ejE5aWAceRM usuariox@mylaptop.local
The key's randomart image is:
+---[RSA 3072]----+
| ..E. ... .|
|. ...o . o + |
|+ +. o . . . o .|
|*.. . oo + |
|==..oO= S . . |
|= o=++++ . . |
| . oo. + . . |
| o . o . . . |
| oo. . o. |
+----[SHA256]-----+
Con lo anterior ya tenemos nuestro ID generado. El siguiente paso es copiar nuestro ID al servidor.
Copiando el ID generado al servidor
ssh-copy-id nombre-de-usuario@espacio.en-un-servidor.com
usuariox@mylaptop ~/.ssh ssh-copy-id nombre-de-usuario@espacio.en-un-servidor.com
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/Users/usuariox/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
nombre-de-usuario@espacio.en-un-servidor.com's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'nombre-de-usuario@espacio.en-un-servidor.com'"
and check to make sure that only the key(s) you wanted were added.
Conectando
Ahora al ejecutar el comando
ssh nombre-de-usuario@espacio.en-un-servidor.comentraremos directamente.
En la raíz del espacio veremos una carpeta .ssh. En la que habrá un archivo: authorized_keys.
Si por curiosidad vemos su contenido.
cat authorized_keysEstá nuestro ID
sh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdqNPuBJI/7fc/dmmmfiiuiey8hmmnjhhj98oiuwieurik+T9f/FDDjRkW2MnlgtQdDU2MnlgtQdDU2Mnlgt
7VWIjBCN1RMGZisXM+98oiuwieuri+hrqGtf4aK69AJZBGs7qWzI5/dfdfksakflk+T9f/FDDjRkWLp++1d3EUIz95r2vomi7BOpXFuT0bgyHUI0ZGQUocy5W
2MnlgtQdDU= usuariox@mylaptop.local
Autor: Eduardo A. F.
Publicado: 27-08-2022 15:55