Accede remotamente a tu PC desde SSH

SSH

¡Hola! 
En esta entrada explicaremos qué es SSH, cómo funciona y cómo activarlo en nuestro PC para acceder remotamente a él, ya sea en LAN o a través de Internet.

 

¿Qué es SSH?

Definamos en primer lugar el acrónimo SSH; SSH viene de Secure SHell (intérprete de comandos seguro). Básicamente es un protocolo que hace que las comunicaciones entre dos sistemas sean seguras. A diferencia de otros protocolos como FTP o Telnet, SSH encripta la sesión, haciendo imposible que alguien pueda conseguir contraseñas no encriptadas, básicamente por eso es la opción número uno para acceder remotamente a un servidor.

SSH Logo. Crédito: Wikimedia
SSH Logo. Crédito: Wikimedia

 

Resumiendo

En pocas palabras, lo que hacemos es abrir una terminal remota. Nos conectamos con un comando desde la terminal a nuestro servidor SSH (A nuestro PC en este caso) y, si nos hemos logeado correctamente, el prompt que nos aparece será el de nuestra máquina remota, y desde ahí, podríamos administrar nuestro PC estemos donde estemos 😉

 

Características de SSH

  • SSH se caracteriza básicamente por encriptar la sesión con claves de encriptación que sólo las conoce quien emite la información y quien la recibe.
  • Si un tercero altera la clave, se modificará el mensaje original, por lo que si algún tercero descubre la clave no podrá acceder al mensaje entero.
  • El usuario tiene la posibilidad de comprobar que sigue conectado al mismo servidor al que se conectó inicialmente.
  • Cuando un usuario accede al servidor SSH, se crea un canal seguro cifrado entre el servidor y el usuario.
  • Los datos enviados y recibidos se encriptan mediante algoritmos de 128 bits, lo que hace casi imposible descifrar y leer el mensaje.

 

Bien, me convence, ¿Cómo puedo usar SSH en mi PC?

Primeramente me gustaría aclarar que debemos tener instalado el paquete openssh. Para instalarlo en Ubuntu y derivados basta con escribir sudo apt-get install openssh-server. Si tienes Archlinux o derivados el comando es el siguiente: sudo pacman -S openssh. Una vez instalado, procedamos 😉

Debemos saber que para que nuestro PC Linux sea un servidor SSH, debemos activar un servicio, el cual podemos activar o simplemente iniciar para utilizarlo hasta el próximo reinicio. Como deduzco, todos querréis tener vuestro servidor SSH corriendo constantemente incluso después del reinicio, así que aquí explicaré como activar el servicio (y cómo desactivarlo por si cambiaras de opinión). Tanto en Ubuntu como en Archlinux y derivados de ambos, escribiremos sudo systemctl enable sshd. Con esto, habremos completado el primer paso, que es activar el servidor de SSH (si no escribimos nada más, se activará en el próximo reinicio). Para iniciarlo al instante sin necesidad de reiniciar basta con escribir sudo systemctl start sshd.
Lo próximo, será abrir su archivo de configuración con nuestro editor de texto favorito. En mi caso: vim /etc/ssh/sshd_config. Sustituid vim por vuestro editor favorito.

De momento no entraremos mucho en detalles, pero como podéis ver ssh se puede configurar ampliamente para todo tipo de necesidades. Como nosotros vamos a abarcar un uso básico, pasaré a explicar lo esencial para el usuario.

  • Casi al principio, podremos ver una línea en la que está escrita: Port 22. Si cambiamos ese número, estaremos cambiando el puerto por el que accederemos a ssh.
  • Si vamos un poquito más abajo (recomiendo usar la función de búsqueda de nuestro editor para no liarnos mucho), veréis que hay una línea en la que está escrito PermitRootLogin. Si pone yes, quiere decir que podemos acceder remotamente como root. Si reemplazamos el yes con un no, no podremos.

De momento, sabiendo esas dos opciones podremos usar ssh correctamente a nivel de usuario. Mi recomendación personal es que cambiéis el puerto, ya que al ser el 22 el predeterminado, si por casualidad intentaran entrar en vuestro equipo por ssh, probarán con el puerto predeterminado. Sin embargo, si cambiáis el puerto, os curáis en salud.
Tip: para ver la IP local del servidor, en una consola escribimos ifconfig. Para ver la IP externa podemos entrar en https://www.whatismyip.com/

 

 

 

Sintaxis de SSH

Hasta aquí hemos explicado como configurar el servidor. ¡Ahora le toca al host! 😛

Para conectarnos a un servidor ssh, el comando será el siguiente: ssh usuario@servidor. Ejemplo de uso: ssh kevin@192.168.1.5. Usuario debemos poner el usuario de nuestra máquina remota, y después del arroba la IP de nuestro servidor SSH, ya sea la remota o la pública.

Si hemos cambiado el puerto por defecto, tendremos que añadirle el parámetro -p puerto, quedando el comando así: ssh kevin@192.168.1.5 -p 5155. Si hemos cambiado el puerto y no usamos el parámetro -p, no nos dejará entrar.

Si todo ha salido bien y escribimos la contraseña correctamente, estaremos logeados en nuestro servidor SSH remoto. Ahora en nuestra terminal (donde hemos escrito el comando ssh), deberá salirnos el prompt del servidor. Recordad que en el ejemplo estamos conectándonos de forma local a nuestro servidor SSH, osea, en la misma red (ya sea LAN o WLAN).

Ejemplo de uso SSH
Ejemplo de uso SSH

 

 

¡Extra!

Imaginaos que estáis fuera de casa y queréis conectaros a vuestro servidor SSH desde el móvil (Existe una aplicación para Android muy recomendada llamada JuiceSSH que nos permite conectarnos remotamente a nuestro servidor SSH). No podréis usar una IP Local (192.168.x.x), ya que no estáis en la misma conexión. ¿Qué hacemos?

  1. En primer lugar, tenemos que saber la IP pública de nuestro servidor SSH, la cual podemos mirar en http://whatismyip.com/
  2. ¡Debemos tener activados los puertos del router! Esta opción es FUNDAMENTAL, ya que, si no tenemos abiertos los puertos que va a usar nuestro servidor SSH, no nos funcionará y nos dará un error. Si quieres aprender cómo abrir puertos en tu router, puedes buscarlo en Google.
  3. Tener el servidor de SSH activo (con el comando especificado anteriormente)
  4. Y lo más importante, tener un programa para conectarnos remotamente. Para Android existe JuiceSSH. Para Windows, existe PuTTY, y desde cualquier otro PC Linux, simplemente tendremos que usar el propio comando ssh 😉

 

 

Y hasta aquí la publicación de hoy. Pienso que esta será de las publicaciones más útiles para aquellos Linuxeros que, al igual que yo, de vez en cuando necesiten controlar su PC estén donde estén, ya estén fuera de casa, en el trabajo o en casa del vecino. Con esta poderosa herramienta podrás tener el control de tu ordenador las 24 horas del día sin perder detalle de lo que está sucediendo. ¿Se te ha olvidado instalar las actualizaciones y estás fuera? No te preocupes, te puedes conectar desde el móvil y solucionarlo en cuestión de segundos. El poder de SSH y de Linux en general, amigos 😉

Te agradecería de veras que me dejaras un comentario si te ha servido la entrada. Por el contrario, si tienes alguna duda quiero recordarte que estoy a tu disposición y estaré encantado de ayudarte respondiendo a tu comentario cuanto antes.

¿Os gustaría una segunda parte?

About Kevin 26 Articles
Fanático de Linux ante todo. Técnico en Sistemas Microinformáticos y redes. Soy curioso por naturaleza, me gusta investigar sobre aquello que no sé, en especial sobre tecnología. La sabiduría es poder.

4 Comments on Accede remotamente a tu PC desde SSH

  1. Hola, tengo una pregunta, lo que pasa es que estoy trabajando en un servidor ¿Es necesario configurar el router si estoy compartiendo el DNS con los usuarios que quieren acceder a el servidor?

    • En cualquier caso, si te refieres a acceder por SSH creo que simplemente tendrías que abrir los puertos. Por otra parte, si estás trabajando en un servidor (CentOS, Fedora, RedHat), ten en cuenta configurar SELinux y otras políticas que puedan restringir el acceso a distintas carpetas y archivos desde SSH.

Leave a Reply

Tu dirección de correo no será publicada.


*