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.com
Esto 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.com
entraremos directamente.

En la raíz del espacio veremos una carpeta .ssh. En la que habrá un archivo: authorized_keys.
Sesión SSH en servidor remoto

Si por curiosidad vemos su contenido.
cat authorized_keys
Está 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