GNU/Linux >> Tutoriales Linux >  >> Linux

Conéctese a un servidor usando SSH en Linux o Mac OS X

Este artículo brinda pasos para conectarse a un servidor en la nube desde una computadora que ejecuta Linux® o MacOS® X mediante Secure Shell (SSH). También analiza la generación de una clave SSH y la adición de una clave pública al servidor.

Introducción

SSH es un protocolo a través del cual puede acceder a su servidor en la nube y ejecutar comandos. Puede utilizar claves SSH para identificar equipos de confianza sin necesidad de contraseñas y para interactuar con sus servidores.

SSH está encriptado con Secure Sockets Layer (SSL), lo que dificulta que estas comunicaciones sean interceptadas y leídas.

Nota: Muchos de los comandos de este artículo deben ejecutarse en su computadora local. Los comandos predeterminados enumerados son para la línea de comandos de Linux o MacOS X Terminal. Para realizar conexiones SSH desde Windows®, puede utilizar un cliente similar al programa gratuito PuTTY. Para generar claves, puede utilizar un programa relacionado, PuTTYGen.

Iniciar sesión

Con la dirección y la contraseña del Protocolo de Internet (IP) de su servidor en la nube, inicie sesión ejecutando el siguiente ssh comando con username@ipaddress como argumento:

ssh [email protected]

El sistema le solicita que ingrese la contraseña de la cuenta a la que se está conectando.

Identificación de host remoto

Si reconstruyó su servidor en la nube, es posible que reciba el siguiente mensaje:

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

Una de las características de seguridad de SSH es que cuando inicia sesión en un servidor en la nube, el host remoto tiene su propia clave que lo identifica. Cuando intenta conectarse, su cliente SSH verifica la clave del servidor con cualquier clave que haya guardado de conexiones anteriores a esa dirección IP. Después de reconstruir un servidor en la nube, esa clave de host remoto cambia, por lo que su computadora le advierte de posibles actividades sospechosas.

Para garantizar la seguridad de su servidor, puede usar la consola web en el Panel de control de la nube para verificar la nueva clave de su servidor. Si está seguro de que no está siendo falsificado, puede omitir ese paso y eliminar el registro del antiguo SSH. clave de host de la siguiente manera:

En tu local computadora, edite el SSH known_hosts archivo y elimine cualquier línea que comience con la dirección IP de su servidor en la nube.

Nota: Utilice el editor de su elección, como nano en Debian o el sistema operativo Ubuntu o vi en servidores RPM o CENTOS. Para simplificar, este artículo solo usa nano . Si prefiere usar vi ,sustituye vi para nano en los comandos de edición. Para obtener más información sobre el uso de nano , vea/support/how-to/modify-your-hosts-file/.

nano ~/.ssh/known_hosts

Si no usa Linux o MacOS X en su computadora local, la ubicación de los hosts_conocidos el archivo puede diferir. Consulte su sistema operativo para obtener información sobre la ubicación del archivo. PuTTY en Windows le ofrece la opción de reemplazar la clave de host guardada.

Generar un nuevo par de claves SSH

Puede proteger el acceso SSH a su servidor en la nube contra ataques de contraseña de fuerza bruta mediante el uso de un par de claves públicas y privadas. Se coloca una clave pública en el servidor y se coloca una clave privada coincidente en su computadora local. Si configura SSH en su servidor para aceptar solo conexiones usando claves, entonces nadie puede iniciar sesión usando solo una contraseña. Los clientes que se conectan deben utilizar una clave privada que tenga una clave pública registrada en el servidor. Para obtener más información sobre seguridad, revise las mejores prácticas de seguridad del servidor Linux.

Utilice los siguientes pasos para generar un par de claves SSH:

  1. Ejecute el siguiente comando usando su dirección de correo electrónico como etiqueta. Sustituya su dirección de correo electrónico por [email protected] en el comando.

    ssh-keygen -t rsa -C "[email protected]"
    

    Un mensaje indica que se está generando su par de claves RSA públicas y privadas.

    Cuando se le indique, presione Intro para usar la ubicación predeterminada o ingrese el archivo en el que guardar la clave y presione Enter .

  2. Si desea la seguridad adicional de una contraseña para el par de claves, ingrese una frase de contraseña y presione Enter . Si no desea utilizar una contraseña con el par de claves, presione Intro para continuar sin configurar uno.

    Se genera su par de claves y el resultado es similar al siguiente ejemplo:

    Your identification has been saved in /LocalFileLocation/id_rsa.
    Your public key has been saved in /LocalFileLocation/id_rsa.pub.
    The key fingerprint is: 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db [email protected]
    
  3. Opcionalmente, agregue su nueva clave al ssh-agent local archivo para permitir que SSH encuentre su clave sin necesidad de especificar su ubicación cada vez que se conecte:

    ssh-add ~/.ssh/id_rsa
    

    Puede usar un acceso directo de configuración SSH en lugar del ssh-agent siguiendo las instrucciones en la Configuración de accesos directos más adelante en este artículo.

Agregue la clave pública a su cuenta en la nube

Para facilitar la adición de su clave a los nuevos servidores en la nube que cree, cargue la clave pública en su cuenta en la nube siguiendo estos pasos:

  1. Inicie sesión en el Panel de control de la nube.

  2. En la barra de navegación superior, haga clic en Seleccione un producto> Rackspace Cloud .

  3. Seleccione Servidores> Claves SSH. .

  4. Haz clic en Añadir clave pública .

  5. Introduce un nombre de clave, como Portátil de trabajo , para recordarle para qué computadora es esta clave.

  6. Seleccione la región para la que desea almacenar la clave pública. Para almacenar su clave en varias regiones, repita estos pasos para cada región. La clave debe residir en la misma región que el servidor.

  7. Pegue el contenido del id_rsa.pub archivo que creó en la clave pública campo. Puede obtener el contenido del archivo abriendo el archivo en un editor de texto o ejecutando el siguiente comando:

    cat ~/.ssh/id_rsa.pub
    
  8. Haz clic en Añadir clave pública .

Si desea agregar la clave manualmente, en lugar de usar el Panel de control, revise las mejores prácticas de seguridad del servidor Linux y use el siguiente comando:

 ssh-copy-id -i ~/.ssh/id_rsa.pub {username}@{remotePublicIPAddress}

Crea un nuevo servidor usando una clave almacenada

Cuando crea un nuevo servidor en la nube, puede agregar una clave almacenada al servidor de noticias.

  1. En Crear servidor página, expanda las Opciones avanzadas sección.

  2. Desde la clave SSH seleccione su clave de la lista.

  3. Si no ve una clave almacenada en la lista, puede realizar una de las siguientes acciones:

    • Cambie la región del nuevo servidor a la región donde almacenó la clave SSH.
    • Repita los pasos de la sección anterior, Agregue la clave pública a su cuenta en la nube ,para agregar la clave a la región en la que desea crear el nuevo servidor.

Agregar la clave a un servidor existente

No puede usar el Panel de control de la nube para agregar una clave pública a un servidor existente. Siga estos pasos para agregar la clave manualmente:

  1. En su servidor en la nube, cree un directorio llamado .ssh en la carpeta de inicio del usuario al que se conecta mediante SSH.

    mkdir -p ~/.ssh
    
  2. Cree o edite las authorized_keys archivo y agregue su clave pública a la lista de claves autorizadas usando el siguiente comando:

    nano ~/.ssh/authorized_keys
    

    Una clave está en una sola línea, así que asegúrese de que la clave no esté rota por saltos de línea. Puede tener varias claves en authorized_keys archivo, con una clave por línea.

  3. Establezca los permisos correctos en la clave usando los siguientes comandos:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
  4. Si tiene algún problema y necesita solucionar problemas de permisos, ejecute el siguiente comando:

    restorecon -R -v /root/.ssh
    

Después de haber agregado la clave pública a authorized_keys , puede realizar una conexión SSH utilizando su par de claves en lugar de la contraseña de la cuenta.

Configuración de accesos directos

Use las siguientes instrucciones para configurar un acceso directo de conexión creando un ~/.ssh/config archivo en su computadora local y agregando su servidor y detalles clave.

  1. Usando un editor de texto, agregue el siguiente texto a ~/.ssh/config archivo, cambiando los valores para que coincidan con la información de su servidor:

    Host shortcutName
    HostName serverAddressOrIPAddress
    User remoteUsername
    IdentityFile /path/to/appropriate/ssh/rsa/private/key
    

    Cada una de las siguientes entradas describe una característica del servidor:

    • Anfitrión: Un nombre de acceso directo que usa para decirle a SSH que use esta conexión.
    • Nombre de host: La dirección del servidor al que se conecta.
    • Usuario: El nombre de la cuenta de usuario a la que conectarse en el servidor.
    • Archivo de identidad: La ubicación del archivo de clave privada (id_rsa).
  2. Después de configurar la config archivo, conéctese al servidor usando el siguiente comando con su nombre de acceso directo:

    ssh shortcutName
    

Solución de problemas

Si tiene problemas para establecer una nueva conexión después de reiniciar el servidor, use los siguientes pasos para ayudarlo a resolver el problema:

  • La mejor manera de solucionar los problemas de inicio de sesión de SSH o SFTP es intentar iniciar sesión a través de SSH mientras está conectado a la Consola de emergencia y ver el registro, que generalmente incluye el motivo de la falla. Si no se da ninguna razón, podría ser un problema de firewall. Para servidores RPM, ejecute el siguiente comando para ver el registro:

      tail -f /var/log/secure
    

    Para servidores Debian, ejecute el siguiente comando para ver el registro:

      tail -f /var/log/auth.log
    
  • Si obtiene un connection timeout error, verifique la dirección IP que usó para asegurarse de que sea correcta. También puede verificar las iptables del servidor para asegurarse de que no esté bloqueando el puerto utilizado por SSH.

  • Si obtiene una connection refused error, es posible que esté intentando usar SSH con el puerto incorrecto. Si cambió su servidor para escuchar un puerto diferente al 22, use -p opción con SSH para especificar el puerto.

  • Si se rechaza su inicio de sesión, es posible que tenga un problema con su clave. Cambia el sshd configuración para permitir conexiones con contraseña configurando PasswordAuthentication a yes . Reinicie el servidor y vuelva a intentarlo. Si se conecta después de estos cambios, entonces el problema está en la clave y debe verificar que la clave esté en el lugar correcto en el servidor.

  • Si todo lo demás falla, revise sus cambios y reinicie el demonio SSH en el servidor ejecutando el siguiente comando:

    sudo service ssh restart
    

    Si recibe un mensaje de que el servicio SSH es desconocido, ejecute el comando con sshd como el nombre del servicio en su lugar.


Linux
  1. Cómo usar SSH en Linux desde Android

  2. ¿Cómo enviar Ssh a un servidor usando otro servidor?

  3. Primeros pasos con SSH en Linux

  4. ¿Cómo restablecer la contraseña de administrador de Plesk usando SSH en el servidor Linux?

  5. Conéctese a Linux desde Mac OS X usando Terminal

12 cosas que hacer después de instalar un servidor Linux

Cómo generar y usar una clave SSH usando PuTTY

Cómo SSH al servidor a través de Linux

Genere claves RSA con SSH usando PuTTYgen

Inicie sesión en un servidor Linux con una clave privada SSH en un cliente de Windows

Cómo usar SSH para conectarse a un servidor remoto en Linux o Windows