Cómo aprovechar al máximo OpenSsh
- 2290
- 706
- Sra. María Teresa Rentería
OpenSSH es una herramienta de conectividad de red e inicio de sesión remota que cifra de forma segura todo el tráfico, desarrollado originalmente por los desarrolladores de OpenBSD para su uso en su sistema operativo. Teniendo en cuenta el enfoque principal de los desarrolladores de OpenBSD en la seguridad, no es sorprendente que OpenSSH se convierta rápidamente en la implementación de inicio de sesión remota estándar para todos los sistemas operativos Linux y UNIX. OpenSSH utiliza un modelo de servidor cliente con el ssh comando que proporciona funcionalidad del cliente y SSHD Proporcionar funcionalidad del servidor.
En este tutorial aprenderás:
- Cómo instalar OpenSSH
- Cómo iniciar sesión en un shell remoto
- Cómo copiar archivos entre máquinas con SCP
- Cómo habilitar la autenticación basada en la tecla y deshabilitar el inicio de sesión basado en la contraseña
- Cómo guardar las configuraciones de máquinas a acceso frecuentes para conexiones más fáciles
- Cómo montar un sistema de archivos remoto sobre SSH Protocal
- Cómo usar el reenvío/túneles de puerto
- Para acceder a una máquina detrás de Nat/Firewall
- Para crear un proxy web
Requisitos y convenciones de software utilizados
Categoría | Requisitos, convenciones o versión de software utilizada |
---|---|
Sistema | Los sistemas basados en hat, basados en Red Hat y basados en Arch se cubren explícitamente, pero el suite OpenSSH es independiente de la distribución y todas las instrucciones deberían funcionar para cualquier distribución que use Systemd como su sistema init. |
Software | Abierro |
Otro | Privilegios raíz para modificar archivos de configuración |
Convenciones | # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominiops - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado |
Instalación OpenSSH
La mayoría de las distribuciones proporcionarán la opción de instalar OpenSSH durante su instalación inicial, pero aún se puede instalar manualmente si no se eligió esta opción. En los sistemas basados en Debian y Red Hat, deberá instalar el servidor y el cliente por separado, mientras que en los sistemas basados en Arch, el cliente y el servidor se instalan como un solo paquete (consulte el ejemplo a continuación). Tenga en cuenta que si está utilizando un firewall, asegúrese de abrir el puerto 22 para el tráfico entrante en cualquier máquina que desee usar como servidor.
En sistemas basados en Debian
$ sudo apt-get install openssh-server $ sudo apt-get install openssh-client
En sistemas basados en Red Hat (nota: en Fedora versión 22 o posterior reemplazar yum con DNF)
$ sudo yum instalación OpenSsh-server $ sudo yum instalación OpenSSH-Client
En el sistema basado en arco
$ sudo Pacman -s openssh
Después de instalar el servidor SSH, algunas distribuciones habilitarán el servicio SSHD de forma predeterminada y otras no. En las versiones recientes de las distribuciones anteriores, ingrese lo siguiente para garantizar que el demonio SSH esté habilitado y pueda ser conectado por los clientes.
$ sudo systemctl inicio sshd $ sudo systemctl habilita sshd
Esto comenzará el servicio ahora y en cada arranque posterior.
Inicie sesión en un shell remoto
Iniciar sesión en un shell remoto es el uso más básico y común de OpenSsh. El siguiente comando le permitirá iniciar sesión de una máquina en red a otra, suponiendo que ambos tengan SSH abierto instalado. Nota: Reemplace el "nombre de usuario" con el nombre de usuario del usuario que desea iniciar sesión como. Si se está conectando a otra computadora en la misma red que reemplace el "host" con la dirección IP o el nombre de host de esa máquina. Si está iniciando sesión en una máquina a través de Internet, reemplace el "host" con la dirección IP o el nombre de dominio de esa máquina.
$ SSH UserName@host
De manera predeterminada, SSHD requiere que la contraseña del usuario se autentique, por lo tanto, ingrese la contraseña del usuario y ahora se registra en esa máquina como ese usuario. Si el usuario es el usuario root o tiene privilegios de sudo, ahora puede administrar completamente la máquina de forma remota. Tenga en cuenta que si se está conectando a un servidor que está utilizando un puerto que no sea el 22 predeterminado (por ejemplo 10001), deberá especificar el número de puerto insertando "-p 10001" (el ""-pag
"Debe ser minúsculas, más sobre esto más adelante) entre SSH y el resto del comando.
Copiar archivos entre máquinas
El comando SCP se puede usar para copiar archivos hacia o desde una máquina y otra. Para hacerlo, primero debe proporcionar la ruta del archivo que desea copiar y luego la ruta donde desea que se copie el archivo.
Por ejemplo, para copiar el archivo lista de quehaceres.TXT
del cliente ~/Documentos
carpeta a la máquina remota ~/Descargas
carpeta ingrese lo siguiente.
$ scp ~/documentos/Todolist.TXT UserName@host: ~/descargas/
Del mismo modo, puede copiar un archivo del servidor al cliente. Simplemente proporcione la ruta del archivo en el servidor, seguido de la ruta deseada en la máquina del cliente. Por ejemplo, podemos copiar lo mismo lista de quehaceres.TXT
que acabamos de subir, en el /TMP
directorio de la máquina local emitiendo el siguiente comando.
$ scp username@host: ~/downloads/Todolist.txt /tmp /
Tenga en cuenta que si está copiando a/desde un servidor que está utilizando un puerto que no sea el 22 predeterminado (por ejemplo 10001), deberá especificar el número de puerto insertando " -PAG
10001 "entre SCP y el resto del comando. Además, tenga en cuenta que este es un capital PAG
en contraste con el minúscula pag
utilizado por el comando ssh. El proceso para copiar directorios es el mismo, excepto que debe especificar el "-riñonal
"Bandera para copiar recursivamente un directorio junto con todos sus subdirectorios y archivos en el mismo. El siguiente comando copiará todo el directorio de documentos del usuario local a la carpeta de descargas del usuario remoto.
$ scp -r ~/documentos nombre de usuario@host: ~/descargas/
Como alternativa al comando SCP, puede usar el comando SFTP para transferir archivos entre máquinas. Se comporta como el comando FTP clásico, pero a diferencia de FTP, está completamente encriptado.
Configuración de la autenticación basada en la llave
Si está utilizando OpenSSH en su red de Home Secure, puede estar bien con la autenticación de contraseña. Sin embargo, si lo está utilizando a través de Internet, se recomienda habilitar la autenticación basada en clave y deshabilitar la autenticación de contraseña en su servidor de cara de Internet para una seguridad adicional. Esto también puede ser útil si simplemente desea evitar tener que escribir la contraseña para iniciar sesión o si usa la máquina del servidor en Public Wifi.
La autenticación basada en la clave utiliza una constación de pares de teclas criptográfica de una clave privada que se almacena solo en la máquina del cliente local y una clave pública que se almacena en el servidor remoto.
Primero, genere el par de claves privadas/públicas en la máquina del cliente local.
$ ssh -keygen -t rsa
Luego cargue solo la clave pública a la máquina remota
$ ssh-copy-id -i ~/.ssh/id_rsa.Nombre de usuario de pub@host
Ahora inicie sesión en el servidor remoto y si no se le solicita la contraseña del usuario, el inicio de sesión basado en clave está funcionando y puede deshabilitar el inicio de sesión basado en la contraseña.
Usando su editor de texto favorito abierto /etc/ssh/sshd_config
como raíz o con sudo
$ sudo vim/etc/ssh/sshd_config
y hacer los siguientes cambios cambiando Sí a No Para estos campos y no se considera que sea necesario (elimine # si la línea comienza con ella).
ChallengerAponseAuthentication No PasswordAuthentication no usePam no
A continuación, recargue el servicio SSHD.
$ sudo systemctl recarga ssh
Guardar configuraciones de máquinas a acceso frecuentes para conexiones más fáciles
Puede ser útil guardar las configuraciones de las máquinas con frecuencia para acceder para que pueda conectarse a ellas más fácilmente; Especialmente si tienen SSHD escuchando en un puerto no predeterminado (no 22). Para hacerlo, agregas entradas a tu ~/.ssh/config
archivo.
Una entrada para una máquina a la que se conectaría con el siguiente comando
$ ssh -p 1666 bob@remotemachine
Se ve como esto.
Host RemotEmachine User Bob HostName Remotemachine Port 1666
Luego puede acceder a esa máquina utilizando el siguiente comando en el futuro.
$ ssh remotemachine
Montaje de un sistema de archivos de red con SSHFS
Aunque no es parte de la suite OpenSsh, sshfs se puede instalar utilizando el Administrador de paquetes y luego se utiliza para montar sistemas de archivos remotos a través de la red. Supongamos que desea acceder al directorio de inicio de User1@Machine1 en su sistema de archivos local.
Cree el directorio donde desea montar el sistema de archivos remoto.
$ mkdir sshmount
Monte el sistema de archivos que especifica la ruta remota y la ruta local donde desea montarla.
$ sshfs user1@máquina1:/home/user1 sshmount
Para desmontar el sistema de archivo de archivos, cualquiera de los siguientes comandos
$ fusermount -u sshmount
o
$ sudo Umount sshmount
Reenvío/túnel
El reenvío de puertos, también conocido como túnel, se puede utilizar para proporcionar cifrado para aplicaciones y protocolos cuyo tráfico de red se enviaría de otro modo Clear. Los siguientes dos ejemplo muestran otros dos usos del reenvío de puertos.
Acceder a una carcasa remota en una máquina que está detrás de Nat o Firewall
¿Qué pasa si quieres ssh por Internet en una máquina que está detrás de Nat o un firewall?? En este escenario hay 3 máquinas.
- La máquina detrás de Nat desea iniciar sesión de forma remota
- Un servidor de Internet que tiene acceso SSH
- Una máquina en otra red que desea usar para iniciar sesión en la máquina 1 a través de Internet
Para el comando ssh el -L
Cambiar reenvía las conexiones al puerto local especificado al puerto host especificado. Del mismo modo, el -Riñonal
Cambiar reenvía las conexiones al puerto remoto especificado al puerto local especificado.
En la máquina 1 ingrese el siguiente comando.
user1@1 $ ssh -r 10125: localhost: 22 user2@2
En la máquina 3 ingrese los siguientes comandos. Nota: El segundo comando debe abrirse en una nueva ventana de terminal o TTY.
user3@3 $ ssh -l 10001: localhost: 10125 user2@2 user3@3 $ ssh user1@localhost -p 10001
El primer comando parecerá que se registra en la máquina 2 normalmente, pero también unirá el puerto 22 (servicio SSHD) desde la máquina 1 al puerto 10125 en la máquina 2 para que las conexiones al puerto 10125 en la máquina 2 se reanuden al puerto 22 en la máquina 1. El segundo comando también parecerá que se registra en la máquina 2 normalmente, pero une el puerto 10001 de la máquina 3 al puerto 10125 en la máquina 2 para que las conexiones al puerto 10001 en la máquina 3 se reanuden al puerto 10125 en la máquina 2, que luego se reenvía al puerto 22 en la máquina 1. Luego, finalmente, la máquina 3 pudo iniciar sesión en la máquina 1, conectándose al puerto 10001 en sí mismo que reenvió a través del túnel que creamos.
Usar OpenSSH como proxy web
Utilizando el -D
Flag, puede usar su servidor SSH remoto como proxy de calcetines. Esto puede ser particularmente útil para la navegación web, por ejemplo, si está en WiFi público y desea una privacidad adicional, o si está en un trabajo/escuela/otra red que puede husmear el tráfico o censurar contenido.
Simplemente emita el siguiente comando y podrá usar puerto 8888
Su máquina local como proxy de calcetines, de modo que las conexiones al puerto 8888 se reenviarán de forma segura al servidor remoto y se encriptarán completamente de los ojos indiscretos en la red local en la red local.
SSH -D 8888 Nombre de usuario@hostConfiguración del proxy de calcetines en Firefox
Tutoriales de Linux relacionados:
- Cómo evitar la comprobación de conectividad de NetworkManager
- Linux: Configuración SSH
- Cosas para instalar en Ubuntu 20.04
- Una introducción a la automatización, herramientas y técnicas de Linux
- Cómo configurar un servidor OpenVPN en Ubuntu 20.04
- Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
- Cómo generar y administrar las teclas SSH en Linux
- Mint 20: Mejor que Ubuntu y Microsoft Windows?
- Ubuntu 20.04 servidor SSH
- Mastering Bash Script Loops