SGLMS

Tag : Osx

Cómo conectarse de un servidor (*nix o Mac OSX) a otro, sin contraseña (Actualización)

A. SGLMS , 20/02/2023

Actualización:

Después de generar la llave (id_rsa y id_rsa.pub; descrito más abajo), también se le puede copiar al servidor remoto usando ssh-copy-id:

usuario@local:~>ssh-copy-id -i ~/.ssh/id_rsa.pub visitante@remoto
visitante@remoto´s password:
Now try logging into the machine, with "ssh 'visitante@remoto'", and check in:
.ssh/authorized_keys
to make sure we haven´t added extra keys that you weren´t expecting.

Esto agregará la llave al final de la lista de servidores autorizados (authorized_keys).

Importante: Si tienes más de una llave privada en tu equipo local, asegúrate de agregrar esta llave privada (id_rsa) a las identidades registadas en el equipo local:

$ ssh-add id_rsa

O si ocupas OSX, es mejor agregarlo al KeyChain:

$ ssh-add -K ~/.ssh/id_rsa

Si por algún motivo ssh-add no está funcionando lo más probable es que ssh-agent no esté activo. Para activarlo:

$ eval `ssh-agent -s`

Para obtener una lista de identidades (llaves) registradas:

$ ssh-add -l

Escenario:

Quieres ocupar OpenSSH para que un ‘usuario’ en el equipo ‘local’ pueda acceder como ‘visitante’ en el equipo ‘remoto’, sin tener que ingresar la contraseña de ‘visitante’ cada vez.

Procedimiento:

Primero en ‘local’, generamos un par de llaves de autentificación. IMPORTANTE: Dejar la contraseña (passphrase) en blanco.

usuario@local:~> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/usuario/.ssh/id_rsa): 
Created directory '/home/usuario/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/usuario/.ssh/id_rsa.
Your public key has been saved in /home/usuario/.ssh/id_rsa.pub.
The key fingerprint is:
3e:4f:05:79:3a:9f:96:7c:3b:ad:e9:58:37:bc:37:e4 a@A

Ahora, nos conectamos como ‘visitante’ usando ssh al equipo ‘remoto’ y creamos (si es que no existe) el directorio ~/.ssh.

usuario@local:~> ssh-keygen -t rsa
usuario@local:~> ssh visitante@remoto mkdir -p .ssh
visitante@remoto's password: 

Finalmente, agregamos la llave púbilca creada al archivo visitante@remoto:.ssh/authorized_keys, e ingresamos la contraseña de ‘visitante’ una última vez:

usuario@local:~> cat .ssh/id_rsa.pub | ssh visitante@remoto 'cat >> .ssh/authorized_keys'
visitante@remoto's password: 

Con versiones más modernas de OpenSSH, es necesario ocupar el archivo .ssh/authorized_keys2 y asegurarse que la carpeta y el archivo tengan los permisos apropiados:

usuario@local:~> cat .ssh/id_rsa.pub | ssh visitante@remoto 'cat >> .ssh/authorized_keys2'
visitante@remoto's password:

Y, ahora cambiamos los permisos

usuario@local:~> ssh visitante@remoto
visitante@remoto:~> chmod 700 .ssh
visitante@remoto:~> chmod 640 .ssh/authorized_keys2

Eso es todo! En adelante el ‘usuario’ podra conectarse como ‘visitante’ al equipo remoto sin ocupar una contraseña en cada oportunidad.

Entradas recientes


Archivos