Si desea habilitar SSH en el escritorio de Ubuntu , use el siguiente comando:
sudo apt install abre el cliente sh
Si desea habilitar SSH en el servidor Ubuntu , use el siguiente comando:
sudo apt install abre el servidor sh
Lea el resto del artículo para obtener información más detallada.
Todos los administradores y desarrolladores de sistemas han experimentado la necesidad de inicios de sesión remotos en los sistemas para una administración y depuración más rápidas.
En un entorno de TI, casi todas las tareas de administrador de sistemas en estos días se realizan a través de inicios de sesión remotos.
Y no solo los administradores de sistemas, incluso los usuarios normales a veces necesitan iniciar sesión remotamente en los servidores.
Entonces, ¿cómo se conecta de forma remota a un sistema Linux? Hay varias herramientas disponibles para inicios de sesión remotos, pero cuando se trata de Linux, SSH es la opción más popular.
SSH, abreviatura de shell seguro, es un protocolo que permite el inicio de sesión remoto de forma segura de una computadora a otra.
Ahora la pregunta es ¿cómo habilita SSH en Ubuntu o Debian o cualquier otra distribución de Linux que esté usando?
Recuerde que SSH es solo un protocolo y este protocolo puede implementarse a través de una serie de herramientas como lsh, Dropbear, etc., pero la herramienta más utilizada para SSH es el software de código abierto OpenSSH.
En este tutorial, verá cómo instalar OpenSSH y configurarlo para habilitar SSH en distribuciones de Linux basadas en Ubuntu y Debian. Los pasos mencionados se aplican a las versiones de escritorio y servidor de Ubuntu/Debian.
También recomiendo leer este artículo para familiarizarse con los conceptos básicos de SSH.
Habilitar SSH en Ubuntu y Debian con OpenSSH
Como mencioné anteriormente, OpenSSH es el software para realizar inicios de sesión SSH. Escucha en un puerto y autentica a los usuarios entrantes y crea un nuevo shell para el usuario remoto.
Para que SSH funcione, se debe ejecutar un servidor ssh en el sistema remoto en el que el usuario debe iniciar sesión. También debe tener un cliente ssh en el sistema local desde el cual el usuario iniciará sesión en el sistema remoto.
OpenSSH proporciona ambas funcionalidades. Hay openssh-client para usuarios finales y openssh-server para servidores remotos.
Antes de instalar OpenSSH, debe verificar si SSH ya está instalado y ejecutándose en su sistema.
Comprueba si SSH ya está habilitado y en ejecución
Es más probable que SSH ya esté habilitado en su sistema. Para verificar, ejecute el siguiente comando en el servidor remoto o en el sistema del usuario final:
ps -aux | grep ssh
Si SSH está habilitado, debería ver información sobre el agente SSH en su escritorio:
ps -aux | grep ssh
abhishek 1736 0.0 0.0 11304 36 ? Ss 08:18 0:00 /usr/bin/ssh-agent /usr/bin/im-launch env GNOME_SHELL_SESSION_MODE=ubuntu gnome-session --session=ubuntu
abhishek 10462 0.0 0.0 21536 1044 pts/0 S+ 10:15 0:00 grep --color=auto ssh
En el servidor, debería ver la información sobre un demonio SSH que se ejecuta:
ps -aux | grep ssh
root 920 0.0 0.2 72296 6028 ? Ss 2018 0:17 /usr/sbin/sshd -D
root 22708 0.0 0.3 108172 7364 ? Ss 05:13 0:00 sshd: [email protected]/0
root 22873 0.0 0.0 14856 1068 pts/0 S+ 05:14 0:00 grep --color=auto ssh
Si no ve una salida similar a las mencionadas anteriormente, no tiene SSH ejecutándose en su sistema. Es hora de instalar OpenSSH.
Instalando OpenSSH en Ubuntu y Debian
Una nota rápida sobre openssh-client y openssh-server antes de continuar con la instalación de OpenSSH.
openssh-cliente: Este es el paquete que necesita si desea conectarse a un sistema Linux remoto mediante SSH. Esto es lo que necesita como usuario final/usuario de escritorio.
openssh-servidor: Este es el paquete que necesita si desea permitir inicios de sesión remotos a través de SSH en su sistema. Esto es lo que necesita en su servidor Linux.
Tenga en cuenta que la instalación de openssh-server también le permite iniciar sesión de forma remota en otros sistemas a través de SSH. En otras palabras, openssh-server consiste en openssh-client. Pero si solo es un usuario final con un escritorio Linux, (en su mayoría) no hay necesidad de instalar el servidor openssh y permitir el inicio de sesión remoto en su sistema.
Ahora que conoce la diferencia entre los dos, es hora de ver cómo instalarlos.
Tenga en cuenta que para instalar OpenSSH en Ubuntu o Debian, debe tener derechos de sudo/root. Si no tiene dicho permiso, comuníquese con el administrador del sistema. También puede leer este artículo sobre la creación de usuarios sudo.
Instalación de OpenSSH para escritorio o usuarios finales
Si solo desea conectarse a otros sistemas remotos a través de SSH, debe instalar el paquete openssh-client con el siguiente comando:
sudo apt update
sudo apt install openssh-client
Una vez que haya instalado ssh en su sistema, podrá usarlo. Consulte este artículo detallado para saber cómo usar SSH.
Instalando OpenSSH para servidores
Si está configurando un servidor Ubuntu/Debian, debe instalar el paquete openssh-server para que otros usuarios remotos puedan conectarse a su sistema.
sudo apt update
sudo apt install openssh-server
Una vez que haya instalado el servidor openssh, es hora de aprender a modificarlo y configurarlo según sus necesidades.
Control del demonio SSH sshd (para servidores)
Tendrás el demonio SSH llamado sshd instalado y habilitado para iniciarse al reiniciar automáticamente de forma predeterminada. systemctl es una de las varias formas de controlar el demonio SSH. Para saber más sobre systemctl , consulte este artículo.
Iniciar el servicio sshd
El servicio se puede iniciar simplemente emitiendo:
sudo systemctl start sshd
Detener el servicio sshd
El servicio se puede detener de manera similar:
sudo systemctl stop sshd
Reiniciar el servicio sshd
Si desea que el servicio sshd se detenga e inicie (generalmente necesario en el caso de cambiar las configuraciones al servicio sshd), simplemente puede usar este comando:
sudo systemctl restart sshd
Habilite SSH en Ubuntu automáticamente en cada arranque
Algunos servicios deben iniciarse al reiniciarse para evitar la interacción manual y si se usa con mucha frecuencia. Es muy esencial para servicios como Apache, mongod, mysqld, sshd en servidores.
Si desea habilitar dicho inicio automático para sshd, use:
sudo systemctl enable sshd
Deshabilitar el inicio automático de SSH al reiniciar
Si no desea que sshd se inicie automáticamente al reiniciar, use
sudo systemctl disable sshd
Los cuatro consejos anteriores son necesarios siempre que realice un cambio en el servicio ssh, como cambiar el puerto. Puede utilizar los comandos anteriores para administrar cualquier servicio (como mysqld, mongod, apache) con el nombre de servicio sshd reemplazado con el servicio de destino.
Consejo :Puede usar el comando nohup para seguir ejecutando comandos incluso si su conexión SSH se desconecta.
Configuración de SSH (para servidores)
A partir de ahora, nuestro servicio ssh escuchará en el puerto 22 y estará listo para autenticar a cualquier usuario (también root) una vez que se almacene una clave.
Si desea cambiar alguna de las configuraciones, como el puerto para escuchar conexiones, puede editar el archivo “/etc/ssh/sshd_config ” agregando, eliminando, comentando o descomentando las líneas y luego reiniciando el servicio sshd.
Hay muchas opciones para configurar. He creado una lista de configuraciones que probablemente serán necesarias.
1. Cambiar el puerto SSH predeterminado
Por lo general, el servicio sshd escucha en el puerto TCP 22. Si lo desea, puede cambiar el puerto SSH para decir 5678 agregando/editando la siguiente línea en /etc/ssh/ssh_config.
Port 5678
Reinicie el servicio para ver el cambio inmediatamente.
2. Deshabilitar inicio de sesión raíz a través de SSH
Permitir que los usuarios root se autentiquen por ssh no es una buena idea por razones de seguridad. sudo los usuarios pueden iniciar sesión de forma remota pero no root como raíz está en la parte superior de la cadena alimentaria de seguridad.
El inicio de sesión raíz se puede deshabilitar agregando (si aún no está presente) la siguiente línea y reiniciando el servicio.
PermitRootLogin no
Si la línea ya está presente, asegúrese de que no esté comentada.
3. Permitir autenticación basada en clave SSH en
Es posible que desee permitir la autenticación basada en clave ssh para que el usuario final no tenga que ingresar la contraseña todo el tiempo. Solo usar ssh [email protected] será suficiente para iniciar sesión en el sistema remoto.
Para esto, debe configurar SSH para permitir la autenticación de clave pública:
PubkeyAuthentication yes
Si la línea ya está presente, asegúrese de que no esté comentada.
Ahora, si desea permitir que un sistema en particular inicie sesión a través de una clave pública, debe agregar esa clave pública del usuario final en el archivo .ssh/authorized_keys .
Puede crear claves ssh (clave pública y clave privada) con la ayuda de ssh-keygen . Para saber más sobre key-gen, consulte este gran recurso.
Puede transferir la clave pública del usuario final al servidor remoto por cualquier medio que prefiera. Puede usar el comando scp si lo desea o simplemente obtenerlo a través de FTP. Realmente depende de ti.
Los tres anteriores son los más necesarios, pero si desea cambiar más, consulte la página de manual de sshd_config .
Conclusión
Creo que es un material de lectura suficientemente bueno para saber cómo habilitar SSH en Ubuntu/Debian y cómo configurar SSH en su servidor para inicios de sesión remotos.
En un artículo relacionado, puede consultar este artículo que detalla un error de SSH que surge debido a la copia de una clave pública entre sistemas.
Si te ha resultado útil este artículo, compártelo con tus amigos. Si tiene alguna sugerencia o comentario, o si cree que me perdí algo, no dude en dejar un comentario a continuación.