SSH: Conceptos Básicos
SSH - es el protocolo y herramienta principal para la administración remota de servidores. También permite crear túneles y transferir archivos.
Utilidades de SSH
Sección titulada «Utilidades de SSH»OpenSSH Server
Sección titulada «OpenSSH Server»sshd(OpenSSH Daemon): Un demonio del lado del servidor que escucha conexiones SSH entrantes. Autentica a los usuarios y establece sesiones seguras.sftp-server(subsistema de servidor SFTP): Un programa para transferencias de archivos usando el protocolo SFTP, normalmente invocado automáticamente por el demonio sshd.
OpenSSH Client
Sección titulada «OpenSSH Client»ssh(cliente SSH): Inicia sesión en un servidor remoto, proporciona un terminal virtual y ejecuta comandos.ssh-keygen: Crea y administra claves de autenticación.scp: Copia archivos entre máquinas locales y remotas usando un canal cifrado.sftp: Transfiere archivos a través de un canal seguro, similar a FTP.
Conexión al servidor
Sección titulada «Conexión al servidor»ssh root@example.comConectar al servidor con un puerto personalizado:
ssh -p 2222 root@example.comConectar al servidor con una clave privada específica:
ssh -i ~/.ssh/server_ed25519 root@example.comConfiguración del Cliente
Sección titulada «Configuración del Cliente»El cliente SSH puede funcionar sin un archivo de configuración y obtener todos los parámetros necesarios desde los argumentos de la línea de comandos. Sin embargo, puedes crear un archivo de configuración llamado ~/.ssh/config. Este archivo debe contener la siguiente información:
Host example.com HostName 192.168.1.1 User root Port 2222 IdentityFile ~/.ssh/server_ed25519Host: nombre del servidor. Este es el nombre que se usa en el comando de conexión:ssh example.comHostName: dirección opcional del servidor. Si no se define HostName, la dirección o nombre de host adecuado debe definirse enHostUser: nombre de usuarioPort: puerto del servidor. Por defecto:22IdentityFile: campo opcional que especifica la ruta completa al archivo de clave privada
Claves SSH
Sección titulada «Claves SSH»Las claves SSH son una forma más segura de iniciar sesión en un servidor SSH, en comparación con el uso de contraseñas. Consisten en un par de claves: una clave pública y una clave privada. La clave pública se coloca en el servidor al que deseas conectarte, mientras que la clave privada permanece en tu máquina local.
Generar
Sección titulada «Generar»Para generar un par de claves SSH, utiliza el siguiente comando:
ssh-keygen -t ed25519 -f ~/.ssh/server_ed25519ed25519- selecciona el tipo de cifrado. Ed25519 es la opción óptima~/.ssh/server_ed25519- la ruta al archivo de clave privada. La clave pública se generará como~/.ssh/server_ed25519.pub
Una vez que se inicie el comando, te pedirá que ingreses una contraseña. Esta contraseña proporciona un nivel adicional de seguridad y debe ser ingresada al conectarse al servidor.
La clave pública es una sola línea con el siguiente formato:
ssh-ed25519 AAAA...UUUU user@example.comCopiar la Clave Pública al Servidor
Sección titulada «Copiar la Clave Pública al Servidor»En el servidor, agrega esta línea al archivo ~/.ssh/authorized_keys. Este archivo puede contener una o más claves. Para agregar la clave pública, ejecuta el siguiente comando:
echo "ssh-ed25519 AAAA...UUUU user@example.com" >>~/.ssh/authorized_keysReenvío de Agente SSH
Sección titulada «Reenvío de Agente SSH»El reenvío de agente SSH te permite usar tus claves SSH locales en un servidor remoto sin compartirlas. Esto es útil cuando necesitas acceder a otro servidor desde el primer servidor sin almacenar tus claves en el servidor remoto.
Puedes habilitar el reenvío de agente SSH usando la opción -A con el comando ssh:
ssh -A example.comAlternativamente, puedes habilitarlo permanentemente para un host específico en tu archivo de configuración SSH ~/.ssh/config:
Host example.com ForwardAgent yes