Configurar en WHM que podamos entrar por ssh solo con nuestra llave criptográfica

 

Cuando tienes un servidor gestionado con WHM y Cpanel, sabes que hay varias tareas que no puedes hacer desde la interfaz web, por ejemplo editar algunos archivos del sistema, o realizar algunas operaciones, es por ello que tenemos el acceso SSH en nuestro servidor, para conectarnos remotamente,  tener la línea de comandos disponible desde nuestra terminal para dar órdenes al servidor en línea.

La práctica recomendada es no permitir al usuario root que pueda iniciar sesión por ssh en nuestro servidor, pero si te gusta vivir la vida al límite, puedes permitir la directiva y rechazar que pueda iniciar sesión a través de la contraseña root.

Ya sea porque tu clave root sea muy fácil, o porque tu seguridad se basa en tener tus contraseñas en un archivo txt, aquí lo importante es que generaríamos nuestra propia clave criptográfica, es decir nuestra llave pública y privada. De esa manera, cada vez que intentáramos entrar a través de ssh a nuestro servidor, éste, verificaría que tenemos permiso por nuestras llaves, no por nuestras contraseña; así, aunque alguien más tuviera tu clave de root, no tendría permiso para poder entrar. Pero no por ello es menos importante tener una clave fuerte para root, ya que si otra persona tiene tu clave, podría entrar al WHM y agregar su propia llave, o desactivar la directiva de acceso sólo con llave. La parte buena es que cuando entres, se te solicitará la contraseña de tu llave, así, no tienes que recordar tu clave random de 32 dígitos y caracteres especiales.

Empecemos.

Primero hay que crear nuestras claves públicas y privadas.


$ ssh-keygen

Y nos preguntará el nombre del archivo y ruta que tendrá nuestra llave. Si no piensas tener diferentes llaves, puedes dejar el que trae predeterminadamente.

Captura de pantalla_2016-05-30_12-49-51

Seguido, te solicitará tu contraseña. Es importante que no sea algo fácil, pero tampoco que sea extremadamente complicada o difícil de recordar, ya que esa contraseña la deberás colocar cuando entras por ssh, o cada vez que haces un “push” en tu control de versiones.

Una vez colocada la contraseña y confirmándola, se generan tus claves. Las puedes ver en la ruta que te marcó al momento de solicitar el nombre. Puede ser en /home/tuUsuario/.ssh/

Ahí tendrás dos archivos. El .pub es tu clave pública. Ese será el que podrás colocarlo en algún servicio o mandárselo a una persona con quien quieres intercambiar información privadamente. El otro archivo, sin extención, es tu llave pública. Nunca, nunca, lo debes compartir así como así, ya que quien tenga tu calve privada, puede generar información haciéndote pasar por ti.

Ahora, vamos a nuestra interfaz en WHM y nos dirigimos a Centro de seguridad -> Administrar claves SSH de raíz. para poder agregar nuestra clave pública.

Captura de pantalla_2016-05-30_12-58-35

Damos clic en “Import key” y nos mostrará una interfaz para importar nuestra llave.

  • “Choose a name for this key (defaults to id_dsa)”: Colocaremos el nombre con el que identificaremos nuestra llave con respecto de las demás.
  • Private key passphrase (Needed for PPK import only): La clave de nuestra llave, sólo en caso de que importemos la privada; para la pública o es necesario.
  • Paste the Private Key in this box (you can also paste a PPK file as well): La clave privada (no es necesario para lo que queremos hacr en éste ejemplo)
  • Paste the Public Key in this box: Aquí vamos a colocar el contenido de nuestra clave pública. Para saber cuál es, podemos abrir nuestro archivo .pub con un editor de textos o desde consola con el siguiente comando

cat /home/tuUsuario/id_rsa.pub

O colocando la ruta de donde guardaste tus llaves.

Una vez que la añadimos, regresaremos ala interfaz donde listan nuestras llaves, y podremos verla, aunque sin permisos todavía para iniciar sesión ya que nos muestra la leyenda “no autorizada”.

Captura de pantalla_2016-05-30_13-14-16

Así que damos clic en “Manage authorization” para conceder los permisos.

Captura de pantalla_2016-05-30_13-16-48

Damos clic en Autorizar, y ahora nuestra llave ya tiene el permiso.

El siguiente paso es muy importante, ya que sin él, no sirve de mucho lo que estamos haciendo, y es activar la directiva que impida que se inicie sesión por ssh con la contraseña de root. Para ello nos dirigimos a Centro de seguridad -> Ajustar la autorización con contraseñas de SSH.

Captura de pantalla_2016-05-30_13-19-06

En esa pantalla nos indica que por razones de seguridad, se debe desactivar la autenticación por contraseña para root y que es mejor que sólo podamos iniciar sesión a través de nuestra clave privada (Para eso fueron los pasos anteriores).

Damos clic en “Disable Password Auth”

Y una vez que nos muestre el mensaje “Done”, ya podemos iniciar sesión con nuestra clave.


ssh root@IP -p PUERTO

Donde IP es la IP del servidor al que queremos conectarnos y PUERTO es el puerto de escucha de SSH. Si está en el puerto predeterminado, entonces no hay necesidad de poner el parámetro -p, pero eso significa que tu servidor estará invadido de intentos de accesos no autorizados por SSH.

 

¿Cómo hago para conectarme también por llave desde otra computadora?

La llave que creamos es válida para la computadora en la que estás actualmente. Para conectarte desde otra computadora, necesitas generar en ella otra llave, o bien, copiar tus llaves de la computadora donde generaste tus llaves que ya tienen permiso.

Author: angelinux

Desarrollador de páginas web desde el año 2000 y con experiencia en programación de sistemas para empresas desde el 2008; cofundador de CONSoluciones; autor del blog de software libre “Angelinux-slack”; docente en maestría en UPAV y fundador de la distribución Linux Falco que está en desarrollo para la Universidad Veracruzana.
Además, ponente, organizador de congreso, laborista social, impartidor de cursos de programación y servidores Linux, webmaster, y ex invitado en programa de televisión.

Deja un comentario