jueves, 10 de mayo de 2012

Conexión vía SSH sin password/passphrase

La intención es mostrar como acceder a los servidores sin introducir el passphrase para copia de archivos de respaldo, sincronizar repositorios de código fuente (como es mi caso con mercurial), en general, para realizar alguna tarea administrativa de manera remota.

Lo primero que se tiene que realizar es, generar un par de llaves RSA, una pública y una privada en el equipo que usaremos para conectarnos, esto se logra usando ssh-keygen.
Al momento que solicite el passphrase solo daremos "enter", para dejarlo en blanco.

$ ssh-keygen -t rsa
  Generating public/private rsa key pair.
  Enter file in which to save the key (/Users/user/.ssh/id_rsa): 
  Enter passphrase (empty for no passphrase): 
  Enter same passphrase again: 
  Your identification has been saved in /Users/user/.ssh/id_rsa.
  Your public key has been saved in /Users/user/.ssh/id_rsa.pub.
  The key fingerprint is:
  cf:8a:5c:67:1a:2a:99:82:21:3d:2e:bd:3d:13:bc:d4 user@equipo.local
  The key's randomart image is:
  +--[ RSA 2048]----+
  |                 |
  |                 |
  |                 |
  |                 |
  | . . .  S        |
  |o o + E  o       |
  |.= o =  o =      |
  |o +.B. + *       |
  | ..o.++ o        |
  +-----------------+

Las llaves son almacenadas en /Users/user/.ssh/, la publica es id_rsa.pub y la privada id_rsa.

Como segundo paso debemos copiar el contenido de la llave pública que hemos creado en el equipo local y agregarla en el archivo ~/.ssh/authorized_keys del usuario en el servidor a donde nos estaremos conectando.