¿Dónde debería estar mi archivo autorizado_keys si quiero ssh a `localhost`?

Tengo mi configuración de clave pública / privada, pero no sé dónde debería ir. ¿Deberían ambos archivos colocarse en ~/.ssh/ para mi usuario?

Responder

La clave privada se queda en casa. La clave pública viaja:

  • Coloque su clave privada en ~/.ssh (host local). Por lo general, será ~/.ssh/id_rsa.
  • Coloque su clave pública en ~/.ssh/authorized_keys (host remoto).

Si bien el primer paso generalmente se realiza automáticamente cuando crea el clave, el segundo se puede lograr a través de:

$ ssh-copy-id ~/.ssh/id_rsa.pub user@remotehost 

Si tiene alguna configuración residual relacionada con el host remoto, puede tener algún problema con esto (falla de autenticación , o «demasiadas fallas de autenticación» ). Para solucionar este problema, puede forzar a ssh-copy-id a usar la autenticación de contraseña con:

$ ssh-copy-id -o"PubkeyAuthentication no" ~/.ssh/id_rsa.pub user@remotehost 

Por supuesto, o Una vez que sus claves están colocadas correctamente, ya no es necesaria una contraseña:

$ ssh user@remotehost 

También puede agregar alguna configuración SSH en ~/.ssh/config para hacerlo aún más simple:

Host [custom name for the remote machine] Hostname [remote hostname or IP] User [remote username] IdentityFile /home/[your local user]/.ssh/id_rsa 

Gracias a esto, puede escribir lo siguiente para iniciar sesión en el host remoto:

$ ssh [custom name for the remote machine] 

Editar: si ambas máquinas (local y remota) son iguales, puede simplificar el procedimiento con:

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 

Esto agregará su clave pública al archivo authorized_keys. Por supuesto, otra forma de iniciar sesión como otra persona en su máquina local es usar:

$ su [another user] 

Esto le ahorrará la transacción SSH donde es posible que no la necesite . Sin contraseña su se puede configurar con sudo :

$ sudo -iu [another user] 

Comentarios

  • ¿Es lo mismo si quiero ssh localhost?
  • @MrDuk En este caso, tanto el extremo local como el remoto son la misma máquina. Por lo tanto, debe tener su clave pública dentro de ~/.ssh/authorized_keys localmente. Para esto, puede usar cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys. Edité mi respuesta.
  • Tal vez las cosas hayan cambiado desde su respuesta, pero necesitaba agregar un -i a su primer comando, para que todo el comando se vea como $ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *