Guía pasar usar claves privadas con las herramientas “putty” de windows y ssh en el servidor.

En relación a este post: http://blog.cballesterosvelasco.es/2011/12/desarrollo-con-linux-desde-windows.html

Puttygen

El programa puttygen es un programa visual para windows que nos permite genera claves privadas y obtener de forma sencilla la cadena que tendremos que usar en el archivo .ssh/authorized_keys.

Al arrancar el programa veremos la siguiente ventana. Podemos generar una nueva clave privada o cargar una existente. Si no tenemos ninguna, pulsaremos el botón generar.

Una vez generada o cargada, veremos en la ventana algo similar a esto:

La cadena que tendríamos que poner en el archivo authorized_keys es la siguiente:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAkSzBHIo41ZH/Nsv1s9GzCZPLLQbcsIyBdQy23/5rTdUqB6TDoCnCVydS1xcir9IXZuWhpYH9vWZIQz0Y2cB9wDNiotT93tpdnfthERlDzG/5FZGV7GsFN7iCjjZLzc8IHsUpdSxNmQQrXdb1YN8BN7HY3Wj3mLxgbwbF/djaODU= rsa-key-20111217

La cadena consiste en una cabecera (en este caso ssh-rsa) que especifica el tipo de clave, una ristra de bits encodeados en base64 que especifican la clave pública y un comentario que se puede utilizar para identificar cada clave. Ahí pondríamos por ejemplo nuestro email, un nombre descriptivo o lo que consideremos oportuno.

El archivo authorized_keys acepta más de una clave, en dicho archivo iría una clave por línea. Así que si el archivo ya existe y contiene claves, añadiremos la clave al final.

Archivo .ssh/authorized_keys

Por seguridad, este archivo tiene que poderse escribir únicamente por ti, y no poder ser ejecutado por nadie. Un permiso 0644 valdría, pero es más recomendable un 0400. La carpeta .ssh también debe tener los permisos adecuados. Un 0700 por ejemplo.

mkdir -p $HOME/.ssh  
chmod 0700 $HOME/.ssh
touch $HOME/.ssh/authorized_keys
chmod 0400 $HOME/.ssh/authorized_keys

Ahora tendríamos que añadir la cadena generada en el paso anterior al archivo. Editando el archivo con nano, vi y copiando desde el portapapeles via putty, editando el archivo visualmente con el winscp, subiendo el archivo y haciendo un cat file » $HOME/.ssh/authorized_keys… La forma que consideres más oportuna.

A partir de este momento, y a no ser que no esté implementado o esté deshabilitado en el servidor, deberíamos poder acceder al servidor por putty o winscp con nuestra clave privada haciendo uso de pageant.

Pageant

Pageant es un programa para Windows que se sitúa en la systemtray y que permite dar acceso temporal a  nuestra clave privada. Programas como putty, winscp o tortoisegit, hacen uso de pageant para usar nuestra clave privada de forma segura.

¿En qué consiste la seguridad de pageant?

Generalmente nuestra clave privada estará encriptada con un password que debería ser seguro. Además de eso, el archivo debería estar guardando a buen recaudo.

Pageant permite cargar una clave privada pidiéndonos la contraseña y dar acceso indirecto a otros programas mediante putty o plink para acceder a conexiones SSH con nuestra clave privada, a servidores que acepten nuestra clave pública generalmente mediante el archivo “.ssh/authorized_keys”.

Enlaces relacionados:

Ahora si abrimos putty o winscp y nos conectamos a un servidor con nuestra clave pública correctamente incluida, seremos capaces de de conectar sin tener que introducir la contraseña del usuario al que nos queremos conectar en la máquina remota, haciendo que la conexión sea más segura y mucho más ágil. También podemos deshabilitar el uso de contraseñas que mejoraría aún más la seguridad siempre y cuando mantengamos nuestra clave privada privada.

Using username “root”.

Authenticating with public key “imported-openssh-key” from agent