¿Qué es SSH y por qué es importante para la administración de servidores?
El Protocolo Secure Shell (SSH) es una herramienta esencial para la administración remota de servidores, especialmente en entornos Linux y Unix. Facilita el acceso seguro a servidores desde cualquier ubicación, lo cual es invaluable para administradores de sistemas que gestionan múltiples servidores. SSH no solo es un protocolo de red, sino también una utilidad de cliente que permite conexiones seguras y encriptadas, esencialmente actuando como un puente hacia nuestros servidores.
Configuración práctica de SSH en servidores Ubuntu y Red Hat
Para poder conectar y administrar servidores de manera remota, primero es esencial asegurarse de que SSH esté correctamente configurado y funcionante. En el caso de haber instalado Ubuntu o Red Hat Enterprise Linux, SSH ya debe estar presente gracias a las herramientas de administración remota.
Comprueba si SSH está instalado:
En Ubuntu, asegúrate de que OpenSSH está activado. Si no lo está, puedes instalarlo con el comando:
sudoaptinstall openssh-server
En Red Hat, al instalar las herramientas de administración remota, SSH ya debería estar instalado.
Verifica el estado del servicio SSH usando ‘systemctl’:
Para verificar si el demonio SSH está corriendo, usa el comando:
systemctl status sshd
Este comando te dará información sobre si el servicio está activo y escuchando peticiones en el puerto 22.
¿Cómo conectarse a un servidor usando SSH desde Windows?
En sistemas Windows, particularmente desde Windows 10 en adelante, puedes usar PowerShell para conectarte a un servidor usando el protocolo SSH.
Abre PowerShell o Windows Terminal.
Conéctate al servidor utilizando SSH:
ssh usuario@ip-del-servidor
Ejemplo:
ssh CodeBars@192.168.1.183
Tras ingresar este comando, el sistema te pedirá la contraseña del usuario para establecer la conexión.
¿Cómo saber la dirección IP de nuestros servidores?
Es crucial conocer las direcciones IP de los servidores para poder conectarte a ellos mediante SSH. Puedes hacerlo utilizando el comando ip address, que te dará información sobre las interfaces de red disponibles.
El dispositivo de interfaz que generalmente estás buscando empezará con "en" y te mostrará una dirección IP en el formato inet, por ejemplo: 192.168.1.183.
Consejos para la administración remota con SSH
Protege tu acceso SSH:
Implementa autenticación mediante llaves SSH en lugar de contraseñas cuando sea posible.
Configura un firewall para restringir quién puede intentar conectarse.
Mantén actualizado el software y los servicios de tu servidor:
Asegúrate de que tanto tu servidor SSH como el sistema operativo estén actualizados para evitar vulnerabilidades.
Explora alternativas para acceso remoto:
Además de SSH, herramientas como TeamViewer o las consolas de administradores en Google Cloud, Azure y Amazon Web Services también ofrecen formas seguras de acceso remoto.
Estos conocimientos no solo te permitirán conectar de manera segura a servidores, sino que también te prepararán para desafíos futuros en la administración de sistemas. Сontinúa practicando y explorando nuevas formas de eficiencia en la gestión de redes y equipos. ¡Sigue adelante!
++RESUMEN DE LA CLASE++
|
Comandos:
ssh: lo usamos para confirmar que tengamos instalado openssh en el sistema, en caso de no estar instalado podemos instalarlo con el comando:
sudo apt install openssh
Para el caso de ubuntu server, o para el caso de RHEL con el comando:
sudo dnf install openssh
systemctl status sshd : Para verificar que el proceso de ssh este activo y corriendo en el sistema (si no les funcione agréguenle la palabra sudo al principio del comando para abrirlo con permisos de superusuario)
ip address : nos da datos sobre nuestros dispositivos de red, incluyendo la IP interna del servidor.
Ahora, para conectarse al servidor desde un dispositivo en la misma red, se puede usar el comando:
ssh username@localip
Desde la PowerShell de Windows o la consola del sistema operativo que estés usando.
|
|
++EXTRA++
En caso de querer acceder remotamente a un servidor, el comando es el mismo, solo que ahora en vez de usar la ip local se usaría la IP pública, la cual se puede ver desde un navegador en internet buscando myip estando conectado a la misma red del servidor o desde el servidor usando algún comando como lo puede ser el siguiente:
curl ifconfig.me
Es importante tener en cuenta que para poder tener este acceso, se debe tener abierto a la red el puerto de internet número 22, adicionalmente es una buena práctica utilizar un firewall para que solo ciertas IPs puedan conectarse al servidor y así evitar accesos no autorizados.
Gracias
esto me ayudo mucho, muchas gracias por compartirlo.
Si cuando ejecutan systemctl status sshd en ubuntu y les aparece el error Unit sshd.service could not be found. prueben primero fijándose si OpenSSH está instalado con :
dpkg -l | grep openssh
```Si no aparece alguna salida relacionada con **openssh-server**, significa que no está instalado.
Entonces, toca instalarlo con :
```js
sudo apt install openssh-server
```Una vez instalado, verifiquen el estado del servicio con:
```js
sudo apt install openssh-server
```Si les aparece así (disabled):

Tienen que habilitarlo con el comando:
```js
sudo systemctl start ssh
sudo systemctl enable ssh
```Y listo una vez hecho esto, ejecuten de nuevo `systemclt status sshd` y ya no les a a salir el error.:)
Eres la mejor, me sirvio bastante! un abrazo grandisimo para ti, Mil gracias
En mi caso si encontró openssh-server** con el primer comando, entonces me basto con
sudo systemctl start ssh
sudo systemctl enable ssh
Muchisimas gracias por tu ayuda, con eso fue muy sencillo c:
¿para cuando el curso de SSH?
Estaría bueno :)
Apoyo eso
Usuario Linux
Si al ejecutar systemctl status sshd te aparece este error.
Unit sshd.service could not be found.
Puedes usar este codigo:
sudo apt install openssh-server
Justamente tenía ese error, gracias
Para los que todavía no pueden solucionar ese error, lo más probable es que el servicio no se llame ssh. Ocupen este comando:
- systemctl -l --type service --all|grep ssh
Yo preferi buscar una alternativa que me evitara tener que lidiar con virtualbox (ya que no permiten descargar desde la ip de mi pais y me da lala usar vpn) e imagenes de otras distros ya que estoy acostumbrado a ubuntu.
Asi que emule el proceso de conectarse por ssh usando WSL2, si requieren instalar WSL2 busquen tutoriales en la web, incluso en platzi hay algunas. Pero en la store de microsoft esta asi como multiples distros ya, asi que busquen.
Con respecto al proceso, si se preguntan porque me conecto al puerto 2022, es porque segui el proceso aqui presente:
Esto no lo veo mal, ya que al revisar con "ip addr show", vi que otra distro que tengo tiene la misma ip, y supongo que si luego requiero conectar otra maquina virtual, puedo asignar la 2023 o algo asi, para que conecten, ya que dudo que conecte todas con la misma linea de codigo al mismo puerto o sin definir puerto.
Por cierto, ya conectamos en LinkedIn?
Conectemos en LinkedIn 👈 o tambien en GitHub 👈
Ahora las imagenes:
Prueba de haber conectado con ssh:
Conectemos en github
Para los que tuvimos problemas siguiendo esta clase esto les puede ayudar:
Activar SSH en Linux
Para activar el servicio SSH en Linux, primero debes asegurarte de que el servidor SSH esté instalado. Si no lo está, puedes instalarlo usando el siguiente comando en una terminal:
Una vez instalado, puedes iniciar el servicio SSH con el siguiente comando:
sudo systemctl start ssh
Para habilitar el inicio automático del servicio SSH al arrancar el sistema, usa:
sudo systemctl enable ssh
Es importante verificar el estado del servicio SSH para asegurarte de que esté funcionando correctamente:
sudo systemctl status ssh
Si el servicio SSH no se inicia automáticamente, puedes forzar su inicio con:
sudo systemctl start ssh
Además, debes asegurarte de que el puerto SSH (por defecto, el 22) esté abierto en tu firewall. Para Ubuntu, puedes usar UFW para permitir conexiones SSH:
sudo ufw allow ssh
Para más detalles sobre la configuración y seguridad de SSH, consulta guías específicas para tu distribución de Linux
Que grande eres amigo. gracias
Para instalarlo en ubunru:
sudo apt-get install openssh-server
tambien sudo apt-get install openssh-client
Yo estoy siguiendo el curso desde una Mac M1, para el curso me cree una instancia EC2 en AWS, Ubuntu es elegible para la capa gratuita de AWS.
Así, aprendo servidores Linux y de paso tambien AWS.
Si gustan hacerlo y tienen alguna duda pueden escribirme y con gusto les ayudo. Les dejo mi insta por si tienen dudas con la instancia EC2: @okit_correira
Este script muestra como activar el adaptador de red de una maquina fedora:
la maquina virtual debe tener en la opcion de red: "adaptador puente"
Ver el estado del network manager en la maquina Fedora:
aqui ya podriamos hacer ping hacia las demas maquinas en nuestra red
💚💚💚Error en ubuntu: unit sshd.server could not be found (comandos para solucionarlo)
Verifica la instalación de OpenSSH Server: Asegúrate de que el servidor OpenSSH esté instalado. Puedes instalarlo con el siguiente comando:
sudo apt updatesudo apt install openssh-server
Verifica el nombre del servicio: En lugar de sshd.server, deberías usar ssh para gestionar el servicio. Intenta iniciar el servicio con:
sudo systemctl start ssh
O para habilitarlo en el arranque:
sudo systemctl enable ssh
Revisa el estado del servicio: Para comprobar el estado del servicio, utiliza:
sudo systemctl status ssh
Muchísimas gracias!
Me fué de gran ayuda!
Estaria buenisimo tener un curso dedicado a SSH en Platzi
estoy tratando de conectar mi servidor rhat por medio de wsl y no puedo de ninguna manera...necesito ayuda porfavor
Hola me paso lo mismo, lo que paso es que la red en red hat está en NAT y hay que adaptarlo a adaptador de puente (esto se hizo con Ubuntu, pero no con red hat).
disculpas por la calidad de la img.
@Daniel Alberto López Gómez tenía problemas para conectarme al servidor, pero note lo de la configuración de red, luego de pasarlo a puente, funcionó, muchas gracias!
Conexion exitosa y rapida a ambas maquinas virtuales Ubuntu Server y Red Hat.
A mi directamente no me dejo usar el adapter bridge... entonces mi solución fue redireccionar el puerto.
Pasos para Configurar el Redireccionamiento de Puertos
Usaremos VirtualBox como ejemplo, pero el proceso es similar en otros programas como VMware.
Abre la configuración de red de tu máquina virtual. Ve a la máquina virtual, haz clic en "Configuración" y luego en la sección "Red".
Asegúrate de que el modo de red esté en NAT. Si no lo está, cámbialo.
Haz clic en "Redireccionamiento de Puertos" (Port Forwarding). Se abrirá una ventana para agregar reglas.
Agrega una nueva regla con los siguientes datos:
Nombre: Ponle un nombre descriptivo, como SSH.
Protocolo:TCP.
IP del Anfitrión (Host IP): Deja esto en blanco o usa 127.0.0.1.
Puerto del Anfitrión (Host Port): Elige un puerto que no esté en uso en tu computadora física. El puerto 22 suele estar ocupado, por lo que puedes usar otro como 2222.
IP del Invitado (Guest IP): Ingresa la dirección IP de tu máquina virtual Ubuntu Server (la que obtuviste con el comando ip addr show).
Puerto del Invitado (Guest Port):22 (el puerto estándar de SSH).
¿Cómo te conectas ahora?
Una vez que guardes esta configuración, no te conectarás a la IP de la máquina virtual. En su lugar, te conectarás a la dirección IP de tu computadora anfitriona, usando el puerto que elegiste.
Por ejemplo, si la IP de tu computadora física es 192.168.1.5 y el puerto del anfitrión que elegiste fue 2222, el comando SSH sería:
Bash
ssh -p 2222 usuario@192.168.1.5
Me sale error al intentar conectarme remotamente a mi servidor... Segui todos los pasos pero al momento poner "ssh user@ip" para conectarme sale error "ssh: connect to host 192.168.250.14 port 22: Connection refused"
Verifica si el puerto está abierto y si no tiene un bloqueo de firewall.
También verifica si ssh está operando correctamente.
eval $(ssh-agent -s) ##verifica el PID de ssh
systemctl status sshd #Te dara info general del programa
En algunos sistemas puede quedar configurado tal que no puedas conectarte como el usuario root.
Para las personas que tuvieron problemas con ubuntu al usar el comando de systemctl status sshd. pueden usar el comando: systemctl status ssh y les funcionara.
en esta imagen ya se observa que esta funcionando ssh.
en mi caso use el comando: apt install openssh-server y el comando apt install openssh-client para poder instalar ssh en ubuntu.
Os dejo una gilipollez que me ha tenido en esta clase dos horas tontamente.... no probeis en redes publicas (bibliotecas, universidad) no se puede
Increíble poder acceder vía SSH al servidor desde la powershell de Windows, creí no habría algo mejor que usar El Cliente de Putty
Puedes probar
Hubiese sido bueno ver en la clase como enviar la llave pública al servidor para conectarse atravesó de ella y no con clave.
Yo lo hice de esa manera, aunque aún me falta configurar el archivo de configuración de ssh para permitir solo el login a ciertos usuarios.
-Mandar la llave pública al servidor remoto:ssh-copy-id -i [dirección_llave_pública] user@direccion-ip
-Después ingresar usando:ssh user@direccion-ip
y su passphrase para su llave si es que la tienen configurada de esa manera.