Putty, SSH y claves RSA. Acceder a un servidor Linux desde Windows con Putty y claves RSA

En una entrada anterior expliqué cómo acceder por SSH a un servidor o equipo remoto sin introducir ni usuario ni contraseña entre equipos Linux o Unix (OS X incluido). En esta entrada voy a explicar cómo hacer lo mismo desde un equipo Windows, usando la aplicación de acceso remoto Putty.

Lo primero que tenemos que hacer es descargar e instalar Putty. Instala varias aplicaciones

Putty

Ejecutamos PuTTYgen para generar la clave pública/privada RSA (SSH-2) de 2048 bits. Selecciono estas dos opciones.

PuttyGen-Key-Generator

A continuación muevo el ratón por la zona vacía para generar aleatoriedad en la creación de las claves.

PuttyGen-Key-Generator

Y ya tengo generadas las 2 claves RSA.

PuttyGen-Key-Generator

Tras generar las 2 claves, las guardo, por ejemplo, en un directorio llamado “my_keys” en “Mis documentos”:

  • Clave pública: rsa-key-servidor
  • Clave privada: rsa-key-servidor.ppk

A continuación copio la clave pública haciendo clic con el botón derecho del campo que indica “Public key for pasting into OpenSSH authorized_keys file:”, usando los comandos “Seleccionar todo” y “Copiar”. Es importante comprobar que la clave empiece por el texto ssh-rsa AAAA.

PuttyGen-Key-Generator

Lo siguiente que tengo que hacer es acceder al servidor con el usuario que estoy configurando y pegar esta clave al final del archivo ~/.ssh/authorized_keys. En el peor de los casos, que no tenga creado el archivo ni el directorio .ssh, ejecuto los comandos:

# Creo el directorio
mkdir ~/.ssh
# Cambio los permisos para que solo pueda acceder el propietario
chmod 0700 ~/.ssh
# Creo el archivo vacio
touch ~/.ssh/authorized_keys
#Cambio los permisos del archivo
chmod 0644 ~/.ssh/authorized_keys

Y en este archivo “authorized_keys” tengo que pegar al final del archivo la clave pública copiada en el paso previo.

A continuación tengo que configurar Putty. Lo ejecuto.

En la sección Session introduzco los datos del servidor remoto: IP o host (campo “Host Name (or IP address)“) y puerto (campo “Port“).

Putty-RSA-login-configuration

En la sección Connection -> Data introduzco el nombre de usuario (campo “Auto-login username”) en el servidor remoto para el que estoy configurando las claves.

Putty-RSA-login-configuration

En la sección Connection -> SSH -> Auth le indico la ubicación de la clave privada (extensión .ppk) creada previamente.

Putty-RSA-login-configuration

Ya solo me queda guardar la sesión con un nombre determinado, que en este caso será la IP del servidor al que me quiero conectar, ya que es un servidor de la red local y lo identifico fácilmente. Para ello voy a la sección Session, selecciono una sesión existente (o creo una nueva introduciendo el nombre en el campo “Saved Sessions“) y hago clic en el botón “Save“.

Putty-RSA-login-configuration

Ya tengo todo configurado. Para conectarme automáticamente al servidor bastará con que haga doble clic sobre la sesión guardada.

Más información:

:wq

14 thoughts on “Putty, SSH y claves RSA. Acceder a un servidor Linux desde Windows con Putty y claves RSA

  1. UNa pregunta, he seguido el tutorial, pero una vez generas las claves dices “accedes al servidor” pero ¿cómo? no se supone que el tutorial va de cómo acceder … lo digo porque de momento no tengo acceso al servidor, es imposible para mi crear un directorio y menos pegar la clave.

    Quizá lo he entendido mal, pero desde el cPanel tampoco tengo la opción de acceder ni con applet de java al servidor. Si hay algo que pueda hacer, te lo agradezco, por lo demas se deja seguir muy bien el tutorial.

  2. Hola Carlos

    En el manual indico

    Lo siguiente que tengo que hacer es acceder al servidor con el usuario que estoy configurando y pegar esta clave al final del archivo ~/.ssh/authorized_keys.

    Obviamente tienes que tener acceso al servidor por SSH, mediante usuario y contraseña. Aquí lo que explico es cómo evitar tener que usar el usuario/contraseña y acceder directamente con el par de claves pública y privada.

  3. Osea, cuando hablás del servidor al que tenés que acceder, te referís a cada cliente?
    En realidad la generación de las claves en primera instancia lo hacés en el servidor según tengo entendido no?
    Saludos

  4. No, la generación de las claves las puedes hacer tanto en tu cliente (lo habitual) como en el servidor. Lo que tienes que indicarle al servidor la clave pública que tiene habilitado el acceso.
    Lo habitual es generar el par de claves (pública y privada) en el cliente ya que esas claves seguramente la vas a reutilizar para acceder a varios equipos remotos.

  5. Tienes que detallar de qué necesitas más información. ¿Cuál es tu problemática? ¿Puedes describirla con detalle?

  6. Estoy perdida en el paso de añadir las claves. Es la primera vez que uso linux y no entiendo muy bien dónde es… En el servidor tengo una carpeta ssh en /etc/ssh y ahí hay dos archivos: moduli y ssh_config. ¿Es ésta la carpeta o es otra ssh? porque el archivo en cuestión no está y no sé si crearlo aquí…. Y una carpeta “.ssh” con el punto delante, no se me ocurre donde debería estar ubicada. Estoy perdida, si me pudieras concretar lo agradecería mucho.

  7. hola cuando abro la sesion me dice acces denied error como solucionarlo

  8. Pues parece que con las credenciales que tienes no puedes acceder al servidor. Comprueba que tienes bien configuradas las claves en el servidor…

  9. Muchas gracias por la orientación paso a paso. Logré conectarme al servidor si mayor problema.

    Saludos!

  10. Estela primero debes poder acceder con usuario y contraseña para luego crear tus claves, la publica y la privada, la privada la copiaras en el servidor y la privada se queda en el cliente, cuando te loguees la proxima vez se utilizara ambas claves como mecanismos de autenticacion, primero trata de levantar el servidor ssh y conectarte mediante el usuario y la contraseña. Despues trata de hacerlo por medio de las claves, el archivo sshd_config es el archivo de configuracion del ssh

  11. Hola soy otro usuario que ha podido hacer completamente el servidor SSH.
    Yo estoy utilizando “Linux Debian” me imagino que si estáis con otro sistema diferente no vaya a cambiar mucho pero bueno, lo que hay que hacer es crear una carpeta oculta en el servidor llamada “.ssh” ahí tenemos que crear un fichero llamado “authorized_keys” donde va la clave pública de dicho cliente, me imagino que para crear la clave del cliente habéis introducido el comando “ssh-keygen -t dsa” el -t indica el tipo de clave que deseas crear, en mi caso utilicé el dsa aunque el rsa también es igual, vamos que una vez creada tendremos en el cliente 2 ficheros llamado “id_dsa.pub” y “id_dsa” pues la clave “id_dsa.pub” es la clave pública donde tienes que copiar su dicho contenido y pasarlo al servidor en el fichero que hemos dicho antes “authorized_keys” y ahí lo pegáis, finalmente, tenéis que configurar el servidor ssh en el archivo de configuración de “sshd_config” y buscar algo llamado “AuthorizedKeysFile” ahí le indicamos la ruta completa por ejemplo “/home/user1/.ssh/authorized_keys”, luego una vez indicada la ruta reiniciamos los servicios “/etc/init.d/ssh restart”, ya por fin, vamos al cliente y introducimos dicho comando “ssh -I /home/usuario/.ssh/id_dsa usuariodelssh@direccionip” la id_dsa es la clave privada y la que tiene el servidor es la pública, y debería de funcionar, espero poder haber resuelto dudas ^^, cualquier cosa enviadme un correo a “RaiiLKilleR@hotmail.com” un saludo ^.^

  12. Estoy muy agradecido. Scaleway (la versión de bajo rendimiento de OnlineNET, que maneja los VPS y los procesadores “lentos”) me exigía tener preconfigurada una clave SSH. El tutorial es muy sencillo, y ahora tengo algunas claves que uso también en mi servicio contratado con hostgator.

Leave a Reply

Your email address will not be published. Required fields are marked *