SSH (Intérprete de órdenes seguro)

opensshSSH por sus siglas en ingles stands for Secure Shell, permite acceder a equipos remotos de forma segura, a través de una red, permite controlar el equipo por completo mediante el interprete de comandos. A demás lo puedes usar para copiar archivos de forma segura usando el gestor gráfico que prefieras como filezilla, haciendo conexiones al servidor con sftp.

Esta aplicación es usada por todos los sysadmin o para establecer conexiones seguras simples con ordenadores comunes, pero su poder no se queda solo en poder ejecutar comandos en los terminales remotos, también puedes crar entornos chroot, es decir; entornos enjaulados donde el usuario que le das acceso a tu servidor tenga limitado los procesos que puede realizar en su sección y limitarlo a que simplemente haga uso del espacio asignado y su directorio configurado.

Instalación del cliente

Lo normal es instalar el cliente si nos queremos conectar otro equipo que cuenta con el servidor ssh, lo hacemos de la siguiente forma.

apt-get install openssh-client

Instalación del servidor

Si lo que quieres es permitir el ingreso mediante un cliente a tu equipo, debes de instalar el servidor.

apt-get install openssh-server

Archivos de configuración

Lo normal es encontrar el archivo de configuración en el directorio /etc/ssh

  • ssh_config : Archivo que contiene la configuración del cliente
  • sshd_config : Archivo que contiene la configuración del servidor.

Conexión remota

Para poder conectarte a otro ordenador mediante ssh, solo necesitas saber el nombre y clave del usuario del equipo al que te conectaras, como lo vemos en el siguiente ejemplo.

ssh tux@192.168.1.10

En el anterior ejemplo nos conectaremos con un usuario que se llama tux y que esta registrado en el ordenador con la ip 192.168.1.10, luego de dar intro, se te preguntara si aceptas la clave del servidor para iniciar una conexiona segura.

The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established.
ECDSA key fingerprint is SHA256:8e4kvvGGf61BFxqefCTKLAD3tedpF6FM7tIgRF4+3Ks.
Are you sure you want to continue connecting (yes/no)? 

Ingresas yes y listo tendrás acceso al terminal remoto, esta confirmación solo te la pedirá la primera ves que te conectes al server, la almacenara en tu equipo para posteriores conexiones en el archivo /$HOME/$USER/.ssh/known_hosts. donde puedes ver la clave de cifrado que usa para cada host

Copiar de archivos a terminales remotas

Para copiar archivos de forma segura ssh hace uso del comando scp, el cual tiene una sintaxis como la siguiente.

scp /etc/apt/sources.list tux@192.168.1.10:/home/user/

Con el anterior comando copiaremos el archivo de repositorios del ordenador cliente hacia el servidor seguido de : se coloca el directorio destino del servidor a cual se copiaran los archivos su sintaxis es similar a cp mas inf. man cp.

Recuerda que también para hacer uso de este comando te puede ser de gran ayuda el cliente de Filezilla  

Usando claves compartidas

En ocasiones nos aburre estar colocando la clave del servidor cada ves que queremos conectarlos, ssh te hace la vid fácil simplemente creando una llave cifrada que se copiara al servidor la cual te identificara cuando intentes conectarte a el, con este evitaras de colocar la clave y el server te dará acceso sin preguntarte nada más. Par ello necesitas crear la clave y luego copiarla al servidor.

Creando la llave

Para generar la clave ssh hace uso del script ssh-keygen

ssh-keygen -t rsa

Al ejecutar este comando se te pedirán un par de configuraciones como la primera que te pregunta la ruta donde quieres almacenar la clave, solo da enter y continua al paso 2 donde da enter y continua al paso 3 donde se te pide que confirmes la clave o passphrase, que sirve para que te pida una contraseña cada ves que uses la clave, la secuencia para crearla te quedaría como se muestra en el siguiente párrafo.

ludwin@zeus:~/.ssh$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ludwin/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/ludwin/.ssh/id_rsa.
Your public key has been saved in /home/ludwin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:hOK+wSa49c1OCFeqIoRl0dcgVJ7WoAEbeJI38DGrH ludwin@zeus
The key's randomart image is:
+---[RSA 2048]----+
|.+*++.+o         |
|+.+B.=.=.        |
| +*.o.* o        |
|.+ . = .         |
|oE. +   S        |
|+.o* .           |
|+o+ * .          |
|.+ + *           |
|.   o.+          |
+----[SHA256]-----+

Copiar la clave al servidor

Para que el servidor no te pida la clave cada ves que te quieras conectar a el, es necesario copiar la clave del cliente con el comando ssh-copy-id

ssh-copy-id -i ~/.ssh/id_rsa.pub tux@192.168.1.10

Este comando copiara la clave al server , te pedirá la clave del usuario, luego salir y probar si te deja ingresar sin pedirte clave de acceso.

En la próximas entradas les mostrare como crear entornos chroot para tener controlados tus usuarios que ingresan al servidor o les brindas un espacio para alojar sus aplicaciones web.

Share on FacebookTweet about this on TwitterShare on Google+

Deja un comentario