Acceder de forma remota a un servidor o a un ordenador es una práctica habitual y hay herramientas que nos permiten controlarlo a través de comandos. Si quieres acceder o conectarte a un servidor remoto SSH te explicamos cómo hacerlo, qué métodos debes seguir desde Windows.
Segure Shell es compatible con Windows, con macOS o con Linux y cualquier usuario de estos sistemas operativos pueden ejecutar comandos para operar o utilizar un equipo remoto. Por eso, te comentamos en qué consiste, para qué se usa, cómo conectarnos desde los diferentes sistemas operativos y lo que necesitas saber para establecer una conexión SSH efectiva. ¡Empezamos!
Qué es SSH y para qué se usa
SSH significa Secure Shell y es un protocolo cuya finalidad es permitir el acceso remoto a un servidor. Podemos acceder de forma remota a un servidor asegurándonos que la información esté totalmente cifrada. SSH nos permite seguridad gracias a que cifra las conexiones de punto a punto. Nos permite conectarnos a un PC de forma remota y controlarlo, transferir archivos de forma segura, ejecutar aplicaciones o gestionar claves, por ejemplo.
No es el único ni el primero y hay otros protocolos como FTP, que ya lo conocerás, o como Telnet. Pero SSH o Secure Shell supone un avance, llegado en 1995, o una mejora precisamente de este último, de Telnet, con algunas de las ventajas en seguridad que ya hemos mencionado, siendo el cifrado lo más importante.
¿Para qué se usa?
Telnet es un protocolo nacido en los años sesenta que tenía como finalidad establecer conexión remotos entre un servidor, ordenadores, dispositivos, etc. Podemos “interactuar” de forma remota navegando entre archivos y funciona con comandos. Pero no es el único protocolo y hay otros, como es el caso de SSH, una versión más avanzada que llegó como su sustituto.
¿Para qué se usa? Nos permite hacer que dos ordenadores tengan una conexión segura, directa y cifrada por Internet. Nos evita problemas de ataques gracias a que los datos van completamente cifrados cuando accedemos al ordenador remoto. Podemos hacer copias de seguridad, transferir archivos, gestionar servidores… Puedes utilizar SSH para acceder a tu servidor, por ejemplo, si tienes en él cualquier tipo de contenido como pueden ser películas, fotografías, series.
Entre las utilidades que podemos tener, también, aparecen lass siguientes:
- Desarrollo de webs, apps, gráficos… SSH es muy usado por programadores a la hora de trabajar con herramientas de control de versione. El control de versiones se ha vuelto indispensable para el desarrollo (ya sea web, apps, gráfico, etc.), y manejarlo mediante SSH es algo que todo programador tiene que aprender.
- Copiado de datos. con el protocolo SSH podemos copiar datos, esto se puede lograr por ejemplo mediante herramientas como rsync o scp, que tienen operaciones sencillas y que usan una conexión vía SSH para copiar datos entre servidores, lo cual hace que toda esta información viaje entre los servidores seguros. Un ejemplo de esto pueden ser las migraciones de sitios entre servidores.
- SSHH para encriptado de contraseñas. Accediendo a un servidor remoto a través del protocolo SSH los riesgos de seguridad se reduce. De esta forma obtendremos una seguridad mucho mayo gracias a la encriptación, donde Secure SHell se encarga de encriptar todas las sesiones. Así, resulta imposible que alguien pueda acceder a las contraseñas.
¿Y qué es OpenSSH?
Puede que a lo largo de estos párrafos encuentres que hablamos también de OpenSSH. ¿Qué diferencia hay? Secure Shell o SSH es un proyecto de código abierto nacido a mitad de los noventa, pero pronto comenzó a ser parte de una empresa que decidió su comercialización. Usando su código abierto nació OpenSSH por parte de los usuarios que se “negaban” a este nuevo sistema.
Son iguales, nos permiten lo mismo y lo único que puede diferenciar ambos es que el primero de ellos nos ofrece soporte, pero también tiene un coste.
Cómo conectarnos a un servidor remoto en Windows
Tenemos dos alternativas para conectarnos a un servidor remoto SSH: hacerlo desde el propio Windows 10 (algo que permite desde su actualización en 2017) o utilizando programas dedicados a ellos, como es el caso de PuTTy. Te comentamos cómo puedes hacerlo de ambas formas.
Hacerlo desde Windows 10
Puedes instalar el cliente OpenSSH desde Windows 10 sin necesidad de instalar nada “extra” ni ningún programa especializado. Te explicamos cómo:
- Ve a la configuración de Windows 10
- Abre el apartado de Aplicaciones
- Elige la primera opción del menú de la izquierda: Aplicaciones y características
- Una vez en esta pantalla, escoge el apartado “Características opcionales”, tal y como puedes ver en la siguiente captura adjunta
Cuando hayamos llegado a esta pantalla tendremos la opción de ver las características opcionales por defecto en el sistema o las que hayas añadido antes. Pero, además, te permite tocar sobre la opción “Agregar una característica”.
Toca sobre este botón y podremos ver todas las opciones y características que nos ofrece Windows en Windows 10. Haz scroll para ver todas las opciones de la lista y añade las que corresponden a “Cliente OpenSSH” y a “Servidor OpenSSH” para terminar el proceso.
Una vez que lo hayas utilizado, tendrás que conectarte al servidor desde CMD o el Símbolo del Sistema, sin nada más que utilizar una serie de comandos. No tienes que utilizar nada más ni descargar nada.
- Abre CMD en ordenador
- Escribe el comando “ssh”
Así comprobarás que el cliente está habilitado Una vez lo hayas hecho, podrás usar alguno de los siguientes comandos para conectarte al servidor:
- ssh IP_del_servidor:puerto
- ssh usuario@IP
Una vez que te hayas conectado ya podrás controlar el servidor desde aquí utilizando comandos y sin necesidad de tener un software de terceros instalado.
Activando OpenSSH Authentication Agent
Una vez ya instalado el cliente OpenSSH lo correcto sería que también activaremos OpenSSH Authentication Agent. Estamos acostumbrados a trabajar con un simple nombre de usuario y contraseña, pero cuando hablamos de sistemas que comparten varios dominios (como es el caso al acceder a servidores remotos), la cosa cambia. OpenSSH Authentication Agent se va a encargar básicamente de hacer un seguimiento de nuestras credenciales, facilitando estas de un modo seguro al servidor al que accedemos. La forma de configurarlo será a través del cuadro de diálogo “Ejecutar”, y además lo haremos de una forma bastante sencilla y directa.
- En primer lugar dirígete a la barra de inicio de Windows 10 y en el buscador teclea “Ejecutar”, o abre directamente el cuadro de diálogo con la combinación de teclas Win + R.
- Una vez abierto tecleamos services.msc y nos llevará a la ventana de servicios de Windows.
- En esta ventana de servicios locales del sistema tenemos que buscar el correspondiente a SSH. Simplemente hay que hacer un poco de scroll hacia abajo y daremos con él.
- Haciendo doble clic sobre este, o con el botón derecho y seleccionando la opción “Propiedades”, nos aparecerá el menú en el que podremos modificar diversos parámetros.
En principio estará desactivado, por lo que podemos cambiarlo a inicio manual, o automático para que se active cada vez que entramos a Windows.
Hacerlo en Windows 11
También puedes hacerlo en Windows 11, ya que, aunque estos paquetes se encuentran dentro de los programas y características opcionales de tu sistema operativo se encuentra desactivado por defecto. La instalación es muy fácil, pero descubrir cómo configurarlo o administrarlo es donde puede tener problemas. Lo bueno es que, cuando se inicia, OpenSSH Server permitirá y accederá a las conexiones y proporcionará acceso a las cuentas de los usuarios. No se necesita configuración para que los usuarios se conecten.
Para activarlo, tendremos que ir a Características opcionales de Windows 11. entra en Configuración, ve a Aplicaciones y allí te encontrarás con las Características opcionales. Da a Ver características para añadir una nueva.
Usarás el buscador para encontrar SSH y así instalar el servidor y cliente si no se encuentran instalados ya. Marca su casilla, da a siguiente y se iniciará la instalación de esta. Va a tardar unos segundos en realizarse. Ya estará y podrás empezar a usarlo de acuerdo a tus intereses.
Como puedes ver, es bastante sencillo, al igual que en Windows 10, y podrás recurrir a herramientas externas compatibles como descubrirás a continuación. A partir de ahora podrás disfrutar de las posibilidades que te ofrece, aunque si no te es sencillo o no te convence, conoce los programas con los que puedes establecer una conexión SSH en Windows 11.
Programas específicos
Otra cosa que puedes hacer es conectarte desde programas específicos para ello. Aunque PuTTY es el más conocido, y explicaremos cómo hacerlo paso a paso, te comentaremos otras alternativas para que puedas elegir el que más te convenza en caso de que prefieras hacerlo con ellos en lugar de con tu sistema operativo. Es importante que elijas un programa seguro, de confianza, que se adapte a lo que necesites y lo descargues de su web oficial o una página de confianza.
PuTTY
Para conectarnos a un servidor remoto a través del protocolo SSH podemos utilizar una aplicación llamada PuTTY. Se trata de un cliente SSH para Windows, gratuito, que nos facilita el proceso si todo lo anterior te ha parecido demasiado complejo o simplemente si buscas una opción más rápida y sencilla.
Esta aplicación gratuita está diseñada específicamente para establecer ciertos tipos de conexiones remotas como Telnet y SSH, entre otras, y que podemos descargar sin coste alguno desde su página web principal. PuTTY es una aplicación portable que no necesita instalación por lo que una vez descargada simplemente bastará con ejecutarla para poder ver su ventana principal de conexión.
Como podemos ver, la primera ventana que nos aparecerá será la de conexión rápida al servidor remoto. En esta ventana simplemente debemos configurar 3 apartados:
- Dirección IP o dominio remoto del servidor al que vamos a conectarnos.
- Puerto que utilizaremos para la conexión (configurado en el servidor)
- Protocolo a utilizar.
PuTTY no es sólo un cliente SSH, también permite realizar conexiones a otros protocolos como Telnet, Raw, Rlogin y Serial, por lo que también nos servirá para realizar este tipo de conexiones. En nuestro caso, como vamos a realizar una conexión SSH, marcaremos este protocolo.
Pulsaremos sobre el botón Open y se nos abrirá un terminal que establecerá la conexión. Una vez establecida nos preguntará por el usuario con el que nos queremos identificar.
Introducimos el usuario, y cuando lo solicite, su contraseña correspondiente. Tras unos segundos estaremos dentro.
Ya podemos comenzar a utilizar la conexión remota SSH.
Cuando queramos cerrar la sesión simplemente escribimos «exit» y cerramos la ventana. PuTTY dispone también de otras opciones adicionales de configuración más avanzadas, pero no es recomendable modificarlas si no sabemos exactamente lo que estamos haciendo ya que podemos dejar el cliente sin conectividad o reducir la seguridad vulnerando nuestra comunicación.
KiTTY
Que sea el más conocido o uno de los más recomendables habitualmente no implica que sea el único. Hay más, alternativas a PuTTY e incluso más modernas que este. Puedes descargar clientes como KiTTY, por ejemplo. Puedes descargar KiTTY de forma gratuita y cuenta con todas las opciones y características del anterior, pero, además, tiene algunas funciones adicionales. Conocerás en la propia página todas sus características, funcionamiento y más.
Algunas de estas características, hablando de conexiones SSH, incluyen la posibilidad de hacer conexiones automáticas a servidores ssh-1 o ssh-2 o incluso a telnet. Lo único que tendrás que hacer será configurar el modo automático en el campo de la conexión para que no tengas que estar introduciendo los datos y haciendo la conexión manualmente. Para garantizar la seguridad las contraseñas solo se almacenan combinadas con los nombres de host.
También puedes almacenar claves privadas y forzar la confirmación de uso o aumentar la seguridad por medio de otros sistemas, como el port knocking. Lo que haces con este sistema es darle una capa de protección extra al puerto ssh definiendo una secuencia de seguridad en el proceso de configuración de la conexión. Asimismo, es posible elegir proxys, y utilizar KiTTY integrado con los principales navegadores web. Hay muchas opciones interesantes que se han ido añadiendo y que hacen de KiTTY una sólida alternativa a PuTTY.
En general es muy parecido y fue creado con el código fuente del anterior así que no te costará mucho hacer uso de él si no te gusta o convence el otro. Es uno de los mejores clientes telnet/SSH del mundo diseñada para Windows a la que puedes recurrir.
Secure Shell para Chrome
Si no quieres recurrir a programas ni herramientas de terceros, puedes optar por una extensión para Chrome que puedes instalar fácilmente. Con ella, te podrás conectar remotamente al ordenador que quieras por medio de diferentes protocolos. Su funcionamiento es por medio de un emulador del terminal y soporta protocolos comunes como SFTP y SSG, de manera que puedes hacer todo esto desde tu navegador. Puedes encontrarlo en esta página y descargarlo.
Ha sido actualizado recientemente y funciona a la perfección. Cuenta con muchas funciones interesantes y te permite conectarte directamente a servidores SSH sin tener que recurrir a proxies externos. Es un producto de Google Secure Shell Developers.
Actualización: La aplicación ha quedado obsoleta. Sus desarrolladores recomiendan a los usuarios que, en su lugar, se instalen la extensión Secure Shell que se puede encontrar en la tienda de Google Chrome y la cual te dejamos enlazada después de estas líneas.
Esta extensión continúa la misma senda que la app y ofrece sus mismas características, así como otras funciones adicionales que aumentan el rendimiento. Así, es un cliente SSH y emulador de terminal que ofrece un uso independiente para beneficiarse de Chrome de una manera muy eficiente. Una de sus últimas novedades es la incorporación de Mosh con una compilación alfa.
Cómo establecer una conexión SSH en Linux
La mayoría de las distribuciones de Linux llevan por defecto un cliente SSH instalado al que se accede desde un terminal por lo que para darle un uso normal sin excesivos requisitos y sin necesitar funciones avanzadas adicionales podremos conectarnos a un servidor SSH sin necesitar ningún programa adicional.
En este tutorial vamos a mostrar cómo conectarnos a un servidor SSH desde un terminal de Ubuntu 14.04.
Lo primero que debemos hacer es abrir un terminal o un TTY en nuestro sistema. Para ello pulsaremos Alt+F1 para el TTY o abriremos el menú de aplicaciones y buscaremos el terminal si queremos seguir disponiendo de las aplicaciones de escritorio.
Para conectarnos al servidor SSH debemos escribir en nuestro terminal el siguiente comando:
- ssh usuario@[IP]:[puerto]
Por ejemplo:
- ssh ruvelro@192.168.1.6:22
Pulsamos enter y se establecerá la conexión. Al ser un servidor seguro debemos crear la clave de seguridad y almacenarla en nuestro ordenador para futuras conexiones al mismo servidor. El mismo cliente nos preguntará si queremos crearla y continuar en caso de que no exista dicha clave.
A continuación, debemos introducir la contraseña del usuario con el que vamos a iniciar sesión.
Una vez introducida la contraseña el cliente SSH se conectará al servidor y nos cambiará tanto el usuario como el dominio de nuestro terminal. En nuestro caso aparecemos conectados como usuario pi a un servidor llamado raspberry.
De esta forma podremos controlar el sistema remoto como si estuviéramos delante de él en un terminal. Podremos realizar prácticamente cualquier tarea, especialmente si se trata de un servidor remoto Linux que es compatible con el 100% de los comandos de SSH y es mucho más manejable que un sistema Windows a través de un terminal CMD.
Para cerrar la conexión debemos teclear la palabra «exit» que finalizará la misma y evitar así que otros usuarios puedan tomar el control de nuestra conexión SSH remota.
Errores más comunes
De todas formas, tanto al operar con los sistemas de Windows o Linux que podamos tener en nuestro ordenador, es bastante usual encontrarnos con que en ocasiones nos encontremos con algunos errores al configurar estos servidores SSH, sobre todo teniendo en cuenta que no es una operación tan sencilla (o al menos no del alcance los que puedan estar menos familiarizados con estos términos).
Por ejemplo, es bastante probable que, cuando nos conectemos por primera vez a un servidor SSH, se nos pregunte si queremos guardar lo que se conoce como ‘fingerprint’ o clave pública. Esta es una medida de seguridad para evitar que un servidor intente suplantar la identidad de otro.
También puede darse, claro está, el problema o error de haber insertado mal cualquiera de los comandos que hayamos escrito de forma incorrecta o errónea. Si esto ocurre, la terminal arrojará un error diciéndonos que el comando que intentamos utilizar no existe. Simplemente, escribe correctamente el comando y todo funcionará.