Uno de los protocolos más usados a través de los tiempos para todo lo relacionado con conectividad remota ha sido SSH el cual tiene sus orígenes desde el año 1.995 ofreciendo un método de acceso seguro desde una red externa donde las vulnerabilidades son tan comunes. Cada día podemos ver como se crean nuevas amenazas, nuevos tipos de ataques y aunque nosotros no tengamos o almacenemos información extremadamente delicada podemos ser victimas de ataques como el ocurrido hace unos meses, WannaCry, donde miles de equipos fueron infectados y su información “secuestrada” y para cuya liberación se exigían montos de dinero.
Sin importar el tipo de usuarios que seamos, debemos conocer que el protocolo SSH fue creado con el objetivo de otorgar permisos de acceso seguros a nuestro sistema macOS Mojave y así garantizar que solo el o los usuarios autorizaos podrán tener dicha accesibilidad desde cualquier lugar.
A través de este tutorial Solvetic desea explicar de forma detallada qué es y cómo implementar SSH en macOS Mojave.
El protocolo SSH hace uso de un cifrado especial con el fin de asegurar la conexión entre un cliente y un servidor, así, todas las autenticaciones tanto de usuarios, comandos, resultados y transferencias de archivos siempre están encriptados con el fin de proteger todos estos elementos contra ataques en la red.
Al usar SSH se cuenta con diversas opciones alternativas con el fin de obtener una autenticación sólida, y se cuenta con beneficis como la mejorar la seguridad e integridad de las comunicaciones usando una encriptación fuerte. SSH se posiciona como una alternativa segura a los protocolos de inicio de sesión no protegidos como telnet o a los métodos de transferencia de archivos inseguros como es el caso de FTP.
El protocolo SSH es implementado en situaciones especiales como:
- Proporcionar acceso seguro para usuarios y procesos automatizados en las compañías
- Realizar las transferencias de archivos de forma interactiva y automatizada
- Estar en la capacidad de ejecutar comandos remotos
- Administrar la infraestructura de red y otros componentes del sistema de misión crítica de una forma centralizada sin importar el lugar donde estemos.
Luego esta conexión, el cliente SSH redirecciona el proceso de configuración de la conexión y hace uso de la criptografía de clave pública con el fin de verificar la identidad del servidor SSH y comprobar que todo está dentro de los parámetros correctos, luego esto, el protocolo SSH se encarga de tomar fuertes algoritmos de encriptación y hash simétricos con el objetivo de garantizar la privacidad y la integridad de los datos que serán transmitidos entre el cliente y el servidor SSH.
Cuando hablamos de la seguridad existen diversas opciones que podemos implementar para la autenticación del usuario siendo las contraseñas y la autenticación de clave pública las mas usadas, de modo que SSH toma como base de seguridad el método de autenticación de clave pública el cual es usado principalmente para la automatización o inicios de sesión únicos.
Las transferencias automáticas de archivos de shell seguros (SH) pueden ser usadas para integrar aplicaciones y también para crear sistemas automatizados y administración de configuración de una forma simplificada pero completamente integral con las mejores prestaciones de seguridad.
Una vez que se ha establecido una conexión correcta entre el cliente SSH y el servidor, los datos que se transmiten a través de estos canales, serán cifrados basándose en los parámetros negociados en la configuración y, durante esta negociación, el cliente y el servidor llegan a un acuerdo sobre el algoritmo de cifrado simétrico que se utilizará y en base a ello se generará la clave de cifrado a usar.
El tráfico entre estos canales siempre está protegido con algoritmos de cifrado estándar de la industria tales como AES (Estándar de cifrado avanzado), y el protocolo SSH también incluye un mecanismo especial que garantiza la integridad de los datos transmitidos usando algoritmos hash estándar como el ya conocido SHA -2.
- Criptografía fuerte usando algoritmos como AES, ChaCha20, RSA, ECDSA, Ed25519 y muchos más
- Totalmente gratuito
- Soporta el reenvío de X11 el cual también encripta el tráfico del Sistema X Window
- Reenvío de puertos el cual permite el reenvío de conexiones TCP/IP a un equipo remota usando un canal encriptado. Autenticación fuerte incluyendo claves públicas, contraseñas de un solo uso y más, gracias a las cuales se protege contra varias fallas de seguridad como suplantación de IP y de identidad, suplantación DNS y más. Con SSH se soportan varios métodos de autenticación como autenticación de clave pública, contraseñas de un solo uso con s/key y autenticación mediante Kerberos.
- Interoperabilidad entre implementaciones
- Reenvío de agente, el cual es útil para usar un agente de autenticación que se ejecuta en el dispositivo del usuario con el fin de mantener las claves de autenticación de ese usuario en particular. SSH se encarga de reenviar de forma automática la conexión al agente de autenticación usando cualquier tipo de conexión sin la necesidad, insegura, de alojar las claves en el equipo local
- Se cuenta con soporte SFTP completo, haciendo uso del comando sftp como cliente y el subsistema sftp-server como servidor
- Compresión de datos opcional los cuales mejoran el rendimiento de los enlaces de red con poca velocidad.
1. Cómo verificar SSH en macOS Mojave
La primera acción que debemos llevar a cabo es verificar que el protocolo SSH este no habilitado en macOS Mojave. Para realizar esta comprobación, debemos acceder a la terminal usando alguno de los siguientes métodos:
- Usando la combinación de teclas ⇧ + ⌘ + U y en la ventana desplegada seleccionamos Terminal
- En la ruta Ir / Utilidades / Terminal
- Usando Spotlight, allí ingresarterminal y elegir la respectiva utilidad.
sudo systemsetup -getremoteloginIngresamos nuestra contraseña y este será el resultado.
Podemos ver que por defecto este protocolo se encuentra deshabilitado. Para su activación, vamos a hacer uso del parámetro -setremotelogin gracias al cual será posible definir y habilitar el acceso remoto mediante SSH a Mojave, para ello ejecutamos la siguiente línea:
sudo systemsetup -setremotelogin onComo tal, este comando no devuelve ningún resultado de modo que ejecutamos de nuevo sudo systemsetup -getremotelogin para comprobar que se ha realizado la activación de SSH. Podemos ver que su estado ahora es On.
2. Cómo habilitar el usuario para acceder mediante SSH a macOS Mojave
Con SSH habilitado en el sistema, el siguiente paso a dar consiste en habilitar el acceso los usuarios que tienen credenciales en el equipo, para ello usaremos la sintaxis con alguno de ellos:
ssh nombre_usuario@ip_equipoDebemos saber en detalle el nombre de o los usuarios a autenticar y para obtener la dirección IP del equipo usaremos alguna de las siguientes opciones:
Desde la terminal ejecutando el comando ifconfig:
Desde Preferencias del sistema / Red:
Ahora, sabiendo la dirección IP, habilitaremos el usuario deseado, en este caso el usuario solvetic, ingresando la siguiente:
ssh solvetic@192.168.0.11Una vez realicemos este proceso el usuario tendrá el acceso al equipo y en caso de ser un usuario administrador deberá suministrar las respectivas credenciales de acceso al mismo:
Como vemos se requiere que ingresemos yes cuando se pregunta si deseamos establecer la conexión.
De esta forma el usuario tendrá acceso usando SSH a macOS Mojave.
3. Cómo acceder de manera externa a macOS Mojave
El siguiente paso a dar es validar que la conexión remota hacia macOS Mojave funcione de la forma esperada, para esto haremos uso de un cliente SSH llamado Putty el cual está disponible en el siguiente enlace:
Una vez lo ejecutemos, debemos configurar lo siguiente:
- En el campo Host Name (or IP address) definimos la dirección IP del equipo macOS Mojave
- El campo Port por defecto está en el 22 se deja tal cual
- El tipo de conexión en el campo Connection Type debe estar como SSH
Pulsamos en el botón Open y se desplegara la siguiente advertencia de seguridad:
Allí como vemos se ve reflejado la clave asignada para la conexión, pulsamos en el botón Si y ahora ingresaremos las credenciales del usuario seleccionado:
Al acceder por SSH a través de Putty, podremos listar librerías:
También será posible acceder a contenido dentro de macOS Mojave:
4. Cómo desactivar SSH en macOS Mojave
En el momento en que consideremos que no es necesario mas usar SSH para las conexiones en Mojave, podemos proceder a su deshabilitacion, para esto ejecutamos lo siguiente en la terminal:
sudo systemsetup -setremotelogin off
Ingresamos yes para confirmar la deshabilitacion de SSH. Así, SSH ya sea de forma local o remota, nos permite acceder al equipo y llevar a cabo tareas de soporte o administración tal como si estuviéramos allí presentes:
De este modo sabrás cómo activar y utilizar SSH en macOS Mojave.