GNU/Linux >> Tutoriales Linux >  >> Linux

Instalación y configuración de OpenSSH en distribuciones basadas en Ubuntu y Debian

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.


Linux
  1. Instalación y configuración de php 7x en Centos 8

  2. Instalación y configuración de Php y Nginx en Ubuntu 20.04

  3. Linux:¿configurar, compilar e instalar un kernel de Linux personalizado?

  4. Instalación y configuración de vsFTPD

  5. Configurar SFTP y prevenir SSH en Ubuntu 20.04

Cómo enumerar paquetes instalados en distribuciones de Linux basadas en Ubuntu y Debian

Guía completa para configurar SSH en Ubuntu

Instalación y configuración de OpenVPN (Windows)

Instalación y configuración de OpenVPN (Ubuntu)

Instalación y configuración de OpenVPN (CentOS6)

Cambia tu puerto SSH en Ubuntu y Debian