JustToThePoint English Website Version
JustToThePoint en español
JustToThePoint in Thai

SSH. Autenticación basada en claves. MOTD. Aplicaciones gráficas sobre SSH. Autenticación de dos factores

SSH (Secure Shell) es un protocolo de red seguro ampliamente utilizado para acceder a computadoras remotas en una red.

  1. Vamos a instalarlo (Ubuntu, Debian y derivados): sudo apt install openssh-server.

    Habilita SSH en tu Raspberry para que puedas acceder a la línea de comandos de una Raspberry Pi de forma remota desde cualquier otro ordenador o dispositivo en la misma red: sudo raspi-config, Interface Options, SSH.

    raspi-config te ayuda a configurar tu Raspberry Pi. Te permite configurar sencillamente y personalizar a tus necesidades, por ejemplo, la distribución del teclado, la zona horaria, la contraseña para el usuario pi, el acceso SSH, etc.

  2. Veamos las direcciones IP asignadas a todas las interfaces: ip address show. Si no conoces la dirección IP de tu Raspberry, teclea hostname -I

  3. Si deseas conectarte a un servidor SSH, usa Putty (en Windows) o debes invocar el comando ssh seguido de tu nombre de usuario, el carácter arroba “@” y la dirección IP del servidor SSH, utilizando el siguiente formato: , simplemente, teclea en un terminal:

    ssh miNombreUsuario@direcciónIPServidorSSH
    

    Es posible que desees crear un alias en tu .bashrc:

    alias sshpi = 'ssh pi@192.168.1.7'
    
  4. Puedes cambiar el comportamiento predeterminado de OpenSSH editando el archivo de configuración sudo vi /etc/ssh/sshd_config. man sshd_config es la página del manual sobre el archivo de configuración de OpenSSH.

            Port 2134 # De forma predeterminada, el demonio sshd escucha en el puerto 22. Podemos cambiar este puerto.
            PermitRootLogin no # No permite que el usuario root inicie sesión directamente.
            Banner /etc/issue.net # Muestra un banner o mensaje (especifica el archivo que contiene dicho mensaje) cuando un usuario intenta autenticarse en nuestro servidor
            PasswordAuthentication no # Deshabilita la autenticación por contraseña. Solo permite iniciar sesión mediante claves públicas.
    
  5. Luego, quizás sea útil asegurarte de la validez (o integridad) de tu archivo de configuración: sudo sshd -t -f /etc/ssh/sshd_config y reiniciar el demonio: sudo systemctl restart sshd.service

  6. Solución de problemas: ¿Se está ejecutando ssh? sudo systemctl status ssh.

  7. Si el firewall está habilitado en tu sistema, debes abrir el puerto SSH: sudo ufw allow ssh.

  8. Habilitar el servicio sshd: sudo systemctl start ssh Habilita e inicia el servicio SSH: sudo stystemctl enable ssh

  1. Genera un par de claves SSH en el cliente (tu ordenador local): ssh-keygen. Por defecto, las claves se almacenarán en el directorio ~/.ssh, la clave privada se llama id_rsa y la clave pública asociada se llamará id_rsa.pub.

  2. A continuación, copia la clave pública en el servidor SSH: ​​

      ssh-copy-id -i ~/.ssh/id_rsa.pub nombreUsuario@dirIPServidorSSH
    

    Utiliza una clave pública disponible localmente para autorizar inicios de sesión en una máquina remota. ssh_copy usa ssh para iniciar sesión en una máquina remota y añade la clave pública de la computadora local al archivo ~/.ssh/authorized_keys del servidor remoto, así típicamente cuando hacemos cat .ssh/authorized_keys: ssh-rsa CSDAAAB3NzaC1yc……asdSRTXmRQ.== myName@gmail.com

  3. Importar las claves SSH a una nueva máquina

  mkdir -p ~/.ssh/ # Primero, necesitamos crear el directorio .ssh, copiar las claves pública y privada a este directorio.
  # Establecer los permisos correctos
  chmod 700 ~/.ssh/
  chmod 600 ~/.ssh/id_rsa
  chmod 600 ~/.ssh/id_rsa.pub
  # Credits: Putorius.net. Create a Custom MOTD or login banner in Linux
  sudo bash -c $'echo "neofetch" >> /etc/profile.d/mymotd.sh && chmod +x /etc/profile.d/mymotd.sh'

Considera que cualquier script en la carpeta /etc/profile.d se ejecutará cuando un usuario inicie sesión.

  1. Edita el archivo de configuración de SSH (vim /etc/ssh/sshd_config) y asegúrate de incluir: X11Forwarding yes
  2. Reinicia el servicio sshd: sudo systemctl restart ssh.
  3. Si deseas permitir el uso de aplicaciones gráficas en el cliente, debes agregar el parámetro -Y:
      ssh -Y nombreUsuario@dirIpServidorSSH
    
  4. A continuación, prueba a lanzar aplicaciones gráficas como vlc & o geany sobre SSH.

Para mantener las sesiones SSH vivas para todas las conexiones remotas, edita el archivo /etc/ssh/ssh_config:

       TCPKeepAlive yes
       ClientAliveInterval 600 # Envía un paquete nulo al cliente cada 600 segundos (10 minutos)
       ClientAliveCountMax 3 # Aborta la sesión si no recibe ninguna respuesta después de 3 intentos.
  1. sudo apt install openssh-server libpam-google-authenticator.
  2. sudo vi /etc/pam.d/sshd: auth required pam_google_authenticator.so (hace que SSH use el módulo Google Authenticator PAM).
  3. Reinicia el demonio sshd: sudo systemctl restart sshd.service.
  4. sudo vi /etc/ssh/sshd_config:
    ChallengeResponseAuthentication yes 
    PasswordAuthentication no (Desactiva la autenticación de contraseña porque muchas personas con servidores SSH usan contraseñas muy débiles) 
    Banner /etc/issue.net (Mostrar mensaje de advertencia) 
    PermitRootLogin no (deshabilitar el inicio de sesión SSH del usuario root o administrador)
    
  5. vi /etc/ssh/sshd-banner:

    ADVERTENCIA: El acceso no autorizado a este sistema está prohibido y será susceptible de sanción y persecución legal. Al acceder a este sistema, acepta que sus acciones pueden ser monitorizadas si se sospecha de un uso no autorizado.

  6. google_authenticator:
    Do you want authentication tokens to be time-based? (¿Deseas que los tokens de autenticación se basen en el tiempo?) Selecciona y(sí).
    Usa Google Authenticator, escanea el código QR e ingresa el código de la aplicación.
    Do you want me to update your “$HOME/.google_authenticator” file? (y/n) (¿Quieres que actualice tu archivo $HOME/.google_authenticator?) Selecciona y(sí).
    Do you want to disallow multiple uses of the same authentication token? (¿Deseas rechazar varios usos del mismo token de autenticación?) y(sí)
    Do you want to do so? (y/n) (¿Quiere hacerlo?) (Aumentar el límite de tiempo, un nuevo token es generado cada 30 segundos por la aplicación móvil) n(o).
    Do you want to enable rate-limiting? (y/n) (¿Quieres habilitar la limitación de velocidad?) y (sí, limita a los atacantes a solo 2 intentos de inicio de sesión cada 30 segundos).
Bitcoin donation

JustToThePoint Copyright © 2011 - 2024 Anawim. ALL RIGHTS RESERVED. Bilingual e-books, articles, and videos to help your child and your entire family succeed, develop a healthy lifestyle, and have a lot of fun. Social Issues, Join us.

Esta web utiliza 'cookies' propias y de terceros para ofrecerte una mejor experiencia y servicio.
Al navegar o utilizar nuestros servicios, estas aceptando nuestra Política de Cookies, así como, nuestros Términos y condiciones de uso.