GNU/Linux
Secure Shell (SSH)
Buscar..
Introducción
Se utiliza un shell seguro para acceder de forma remota a un servidor desde un cliente a través de una conexión encriptada. OpenSSH se usa como una alternativa a las conexiones Telnet que logran acceso remoto a la shell pero no están encriptadas. El cliente OpenSSH está instalado en la mayoría de las distribuciones de GNU / Linux por defecto y se usa para conectarse a un servidor. Estos ejemplos muestran cómo usar el conjunto SSH para aceptar conexiones SSH y conectarse a otro host.
Conectando a un servidor remoto
Para conectarse a un servidor debemos usar SSH en el cliente de la siguiente manera,
# ssh -p port user@server-address
- puerto : el puerto ssh de escucha del servidor (puerto predeterminado 22).
- usuario : debe ser un usuario existente en el servidor con privilegios de SSH.
- Dirección del servidor : la IP / dominio del servidor.
Para un ejemplo del mundo real, simulemos que estás creando un sitio web. La compañía que eligió para alojar su sitio le informa que el servidor está ubicado en web-servers.com en un puerto personalizado de 2020 y que su nombre de cuenta usr1 ha sido elegido para crear un usuario en el servidor con privilegios SSH. En este caso, el comando SSH utilizado sería como tal.
# ssh -p 2020 [email protected]
Si el nombre de la cuenta en el sistema remoto es el mismo que el del cliente local, puede omitir el nombre de usuario. Entonces, si está usr1
en ambos sistemas, entonces simplemente puede usar web-servers.com
lugar de [email protected]
.
Cuando no puede acceder directamente a un servidor al que desea conectarse, puede intentar usar el conmutador ProxyJump para conectarse a él a través de otro servidor al que tenga acceso y que pueda conectarse al servidor deseado.
# ssh -J [email protected]:2020 [email protected] -p 2222
Esto le permitirá conectarse al servidor 10.0.0.2 (ejecutando ssh en el puerto 2222) a través del servidor a 10.0.0.1 (ejecutando ssh en el puerto 2020). Necesitará tener cuentas en ambos servidores, por supuesto. También tenga en cuenta que el conmutador -J se introduce en la versión 7.3 de OpenSSH.
Instalación de la suite OpenSSH
Tanto la conexión a un servidor SSH removido como la aceptación de conexiones SSH requieren la instalación de openssh
Debian:
# apt-get install openssh
Arch Linux:
# pacman -S openssh
Mmm
# yum install openssh
Generar clave pública y privada.
Para generar claves para el cliente SSH:
ssh-keygen [-t rsa | rsa1 | dsa ] [-C <comment>] [-b bits]
Por ejemplo:
ssh-keygen -t rsa -b 4096 - C [email protected]
La ubicación predeterminada es ~/.ssh/id_rsa
para privado y ~/.ssh/id_rsa.pub
para clave pública.
Para obtener más información, visite man.openbsd.org
Configurando un servidor SSH para aceptar conexiones
Primero debemos editar el archivo de configuración del demonio SSH. Aunque bajo diferentes distribuciones de Linux, esto puede ubicarse en directorios diferentes, generalmente se almacena en /etc/ssh/sshd_config
Use su editor de texto para cambiar los valores establecidos en este archivo, todas las líneas que comiencen con # están comentadas y deben tener este carácter eliminado para que surta efecto. Una lista de recomendaciones sigue como tal.
Port (chose a number between 0 - 65535, normaly greater than four digits)
PasswordAuthentication yes
AllowUsers user1 user2 ...etc
Tenga en cuenta que es preferible desactivar todos los inicios de sesión de contraseña y usar las claves SSH para mejorar la seguridad como se explica en este documento.
Deshabilitar el servicio ssh
Esto deshabilitará el servicio del lado del servidor SSH, ya que si es necesario, se asegurará de que los clientes no puedan conectarse a través de ssh
Ubuntu
sudo service ssh stop
Debian
sudo /etc/init.d/ssh stop
Arco de linux
sudo killall sshd
Conexión sin contraseña (usando un par de claves)
En primer lugar, tendrá que tener un par de claves. Si aún no tiene una, eche un vistazo al tema 'Generar clave pública y privada'.
Su par de claves está compuesto por una clave privada (id_rsa) y una clave pública (id_rsa.pub). Todo lo que necesita hacer es copiar la clave pública al host remoto y agregar su contenido al archivo ~/.ssh/authorized_keys
.
Una forma simple de hacerlo es:
ssh <user>@<ssh-server> 'cat >> ~/.ssh/authorized_keys' < id_rsa.pub
Una vez que la clave pública esté correctamente colocada en el directorio de inicio de su usuario, solo necesita iniciar sesión con la clave privada correspondiente:
ssh <user>@<ssh-server> -i id_rsa