Publicado
Si necesita utilizar SSH en Linux para administrar de forma remota otras computadoras, esta guía lo guiará para hacerlo.
En el panorama interconectado actual, la capacidad de administrar computadoras desde diferentes ubicaciones geográficas ha pasado de ser un lujo a ser una necesidad. Hay varias formas de hacer esto, según el sistema operativo utilizado. Para Sistemas basados en Linux, la forma más común y segura de administrar su PC de forma remota es usar SSH (o Cubierta segura).
Profundicemos en cómo usar SSH en Linux para conectarse a otras computadoras.
Primeros pasos esenciales
Antes de poder conectarse exitosamente a otra computadora Linux con SSH, deberá cumplir con los siguientes requisitos previos:
- La computadora de destino debe permanecer encendida y conectada a una red.
- Se debe instalar y activar el software de cliente y servidor necesario.
- Necesitará saber la dirección IP o el nombre de host de la máquina de destino.
- Deben existir los permisos adecuados para el acceso remoto.
- Las configuraciones de firewall en la computadora remota deben permitir la conexión entrante.
Si accede a una computadora Linux administrada, por ejemplo, por su empresa de alojamiento web, ellos ya deberían haberse encargado de todo eso. A continuación, es posible que deba realizar alguna instalación básica de software en su propia computadora con Linux.
Uso de SSH en Linux: una guía práctica
Establecer una conexión SSH funcional requiere módulos de software tanto de cliente como de servidor. OpenSSH sirve como alternativa de código abierto predominantemente para plataformas Linux.
Para instalar el cliente OpenSSH adecuado, necesitará acceso a la terminal en su máquina local. Tenga en cuenta que los sistemas Ubuntu carecen de un servidor SSH preinstalado.
Instalación de un cliente OpenSSH
Antes de profundizar en el proceso de instalación, debe verificar que el cliente SSH no esté allí. Para hacer eso, solo abrir una ventana de terminal. Puede buscar “terminal” o presionar Ctrl + Alt + t en tu teclado.
Una vez en la ventana de su terminal, pruebe la presencia del cliente SSH escribiendo lo siguiente:
$ ssh
Si la computadora Linux ya tiene un cliente SSH instalado, verá la siguiente información desplazándose por la pantalla.
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host: port] [-w local_tun[:remote_tun]] destination [command [argument ...]]
Si, en cambio, recibe una queja acerca de que no se encontró el archivo, deberá continuar con la instalación del cliente OpenSSH. Afortunadamente, esto es bastante sencillo.
En Ubuntu y otras instalaciones basadas en Debian, simplemente ejecute el siguiente comando en la Terminal:
$ sudo apt install openssh-client
Si estás ejecutando Fedora o otra distribucion que usa mmm en lugar de apto, simplemente ejecuta este comando:
$ sudo yum -y install openssh-clients
Los sistemas Fedora más nuevos pueden usar dnf en cambio. Si eso le suena familiar, el comando mágico es:
$ sudo dnf install -y openssh-clients
Siga las instrucciones en pantalla y estará listo para comenzar en poco tiempo.
Iniciar una conexión SSH
Una vez que se haya asegurado de que el cliente SSH esté instalado en su computadora Linux, es hora de iniciar esa primera conexión. Mientras todavía estás en la ventana de la terminal, emite el siguiente comando:
$ ssh username@host_ip_address
Si los nombres de usuario coinciden en máquinas locales y remotas, simplemente ingrese:
$ ssh host_ip_address
La primera vez que se conecte, recibirá un mensaje que le preguntará si desea continuar conectándose a la computadora desconocida. En este punto, escriba Sí y continuar.
Ingrese su contraseña, sabiendo que no recibirá ningún comentario en pantalla durante la entrada. Una vez hecho esto, debería iniciar sesión en el servidor remoto y poder comenzar a realizar cualquier tarea que necesite realizar en esa computadora en primer lugar.
Comprender SSH: una descripción general de alto nivel
Secure Shell, o SSH, ocasionalmente denominado Secure Socket Shell, es un protocolo que permite una conectividad segura a servidores o computadoras remotas a través de una interfaz basada en texto.
Al autenticar un canal SSH seguro, se inicializa una sesión de shell, lo que permite la interacción de la línea de comandos desde su máquina local.
Este protocolo es muy conocido y apreciado por los administradores de sistemas y redes, así como por cualquiera que necesite una gestión remota segura de sus máquinas.
Mecánica de la funcionalidad SSH
Establecer un canal SSH exige la colaboración de dos componentes fundamentales: una aplicación del lado del cliente y su contraparte del lado del servidor. La aplicación cliente inicia la conexión proporcionando credenciales de host remoto.
Si se verifica, el software crea un canal cifrado entre las dos computadoras. En la máquina remota, un demonio SSH escanea continuamente un puerto TCP/IP designado en busca de posibles solicitudes de conexión.
Al recibirlo, el demonio transmite su software y capacidades de protocolo, y ambas entidades intercambian datos de identificación. Se produce una sesión cifrada si las credenciales coinciden, predominantemente a través del protocolo SSH versión 2.
Uso avanzado de SSH: almacenamiento de su clave de cifrado para evitar ingresar una contraseña
Ahora, digamos que quieres evitar tener que Ingresa tu contraseña cada vez que inicia sesión en un servidor remoto. Para una conexión segura y sin contraseña a otra computadora, es indispensable una clave SSH (Secure Shell).
Es posible que ya posea dicha clave, pero generar una nueva nunca es una mala idea. Una clave SSH, que se origina en su computadora local, se divide en dos elementos distintos: una clave privada y confidencial (que nunca debe divulgarse) y su contraparte pública. Esta clave pública luego se difunde a cualquier sistema remoto en el que necesite iniciar sesión.
Algunas personas pueden optar por una clave SSH para una multitud de aplicaciones, desde inicios de sesión remotos en sistemas hasta GitLab. Se podría decir que hay una clave para gobernarlos a todos. Sin embargo, mi enfoque es más granular. Utilizo diferentes claves, cada una diseñada para un subconjunto específico de tareas.
Por ejemplo, utilizo una clave dedicada para máquinas locales dentro de mi red doméstica, otra clave exclusiva clave para los servidores web bajo mi administración y otra clave única más para interactuar con Git Hospedadores.
Crear un nuevo par de claves SSH
A continuación le mostramos cómo puede crear una nueva clave SSH y luego copiarla al servidor remoto para el que desea usarla. Primero, cree la clave usando ssh-keygen.
$ ssh-keygen -t ed25519 -f /.ssh/lan
La bandera -t especifica el tipo de clave a crear, asegurando que el cifrado sea superior al predeterminado. El -F El indicador establece el nombre del archivo y la ubicación de la clave.
Cuando emita este comando, se le pedirá que cree una contraseña para la clave. Esa contraseña, si la configura, permanece local y no se envía a través de la red.
Envío de su clave SSH al servidor remoto
A continuación, deberá enviar esa clave de seguridad al servidor remoto. Para lograr esto, simplemente emita este comando:
$ ssh-copy-id -i /.ssh/lan.pub user@host_ip_address
Se le solicitará su contraseña de inicio de sesión en el host remoto. Sin embargo, una vez que se complete el proceso, su clave se instalará en esa computadora.
Deberías probar intentando iniciar sesión en la computadora remota. Cuando vuelva a realizar ssh en el host remoto, se le pedirá la frase de contraseña para la clave, si configuró una. Recuerde que esta no es su contraseña de inicio de sesión. Es la frase de contraseña específica de esa clave SSH.
En muchas distribuciones, incluido Linux, esta solicitud de contraseña se abrirá como un cuadro de diálogo. Como puede ver en el ejemplo siguiente, puede marcar una casilla para que la computadora Linux recuerde la frase de contraseña. Sin embargo, eso reducirá la seguridad de la clave.
Una vez que haya ingresado la frase de contraseña para su clave SSH, no debería tener que ingresarla nuevamente hasta que cierre sesión en la computadora local.
Otras formas de utilizar SSH
Una vez hecho todo esto, está listo para usar SSH para acceso remoto a otras computadoras basadas en Linux o Unix. Por supuesto, no se trata solo de acceder al símbolo del sistema.
SSH también incluye una forma segura de transferir archivos entre computadoras sin usar FTP. Puede utilizar Copia segura, o scp, para mover esos archivos. Si es usuario de Windows 11 y necesita utilizar SSH, está de suerte ya que el cliente está preinstalado. Puede incluso generar y utilizar Claves SSH en Windows 11.