Gestión de acceso mediante shell seguro en Oracle® Solaris 11.2

Salir de la Vista de impresión

Actualización: Septiembre de 2014
 
 

Cómo configurar la autenticación basada en host para el shell seguro

El siguiente procedimiento configura un sistema de clave pública en el que la clave pública del cliente se utiliza para la autenticación en el servidor. El usuario también debe crear un par de clave pública y clave privada.

En el procedimiento, los términos cliente y host local hacen referencia al sistema en el que un usuario introduce el comando ssh. Los términos servidor y host remoto hacen referencia al sistema al que el cliente está intentando acceder.

Antes de empezar

Debe asumir el rol root. Para obtener más información, consulte Uso de sus derechos administrativos asignados de Protección de los usuarios y los procesos en Oracle Solaris 11.2 .

  1. En el cliente, active la autenticación basada en host.

    En el archivo de configuración del cliente, /etc/ssh/ssh_config, escriba la siguiente entrada:

    HostbasedAuthentication yes

    Para ver la sintaxis del archivo, consulte la página del comando man ssh_config(4).

  2. En el servidor, active la autenticación basada en host.

    En el archivo de configuración del servidor, /etc/ssh/sshd_config, escriba la misma entrada:

    HostbasedAuthentication yes

    Para ver la sintaxis del archivo, consulte la página del comando man sshd_config(4).

  3. En el servidor, configure un archivo que permita que el cliente se reconozca como un host de confianza.

    Para obtener más información, consulte la sección FILES de la página del comando man sshd(1M).

    • Si usted realiza la configuración, agregue el cliente como una entrada al archivo /etc/ssh/shosts.equiv del servidor.
      client-host
    • Si los usuarios realizan la configuración, deben agregar una entrada para el cliente a su archivo ~/.shosts en el servidor.
      client-host
  4. En el servidor, asegúrese de que el daemon sshd pueda acceder a la lista de hosts de confianza.

    Establezca IgnoreRhosts en no en el archivo /etc/ssh/sshd_config.

    ## sshd_config
    IgnoreRhosts no
  5. Asegúrese de que los usuarios de Shell seguro en su sitio tengan cuentas en ambos hosts.
  6. Coloque la clave pública del cliente en el servidor con uno de los siguientes métodos:
    • Modifique el archivo sshd_config en el servidor y luego indique a sus usuarios que agreguen las claves de host públicas del cliente a sus archivos ~/.ssh/known_hosts.
      ## sshd_config
      IgnoreUserKnownHosts no

      Para obtener instrucciones para el usuario, consulte Cómo generar un par de clave pública y clave privada para utilizar con el shell seguro.

    • Copie la clave pública del cliente en el servidor.

      Las claves de host se almacenan en el directorio /etc/ssh. Las claves suelen ser generadas por el daemon sshd al iniciar por primera vez.

      1. Agregue la clave al archivo /etc/ssh/ssh_known_hosts en el servidor.

        En el cliente, escriba el siguiente comando en una línea sin barra diagonal inversa.

        # cat /etc/ssh/ssh_host_dsa_key.pub | ssh RemoteHost \
        'cat >> /etc/ssh/ssh_known_hosts && echo "Host key copied"'

        Notas -  Si faltan las claves de host del servidor, con el shell seguro se genera un mensaje de error similar al siguiente:
        Client and server could not agree on a key exchange algorithm:
        client "diffie-hellman-group-exchange-sha256,diffie-hellman-group-
        exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1",
        server "gss-group1-sha1-toWM5Slw5Ew8Mqkay+al2g==". Make sure host keys 
        are present and accessible by the server process. See sshd_config(4) 
        description of "HostKey" option.

      2. Cuando se le pida, proporcione la contraseña de inicio de sesión.

        Cuando el archivo se copia, se muestra el mensaje “Host key copied” (clave de host copiada).

        Cada línea en el archivo /etc/ssh/ssh_known_hosts consta de campos que están separados por espacios:

        hostnames algorithm-name publickey comment
      3. Edite el archivo /etc/ssh/ssh_known_hosts y agregue RemoteHost como el primer campo en la entrada copiada.
        ## /etc/ssh/ssh_known_hosts File
        RemoteHost <copied entry>
Ejemplo 1-1  Configuración de autenticación basada en host

    En el siguiente ejemplo, cada host está configurado como servidor y como cliente. Un usuario en cualquiera de los hosts puede iniciar una conexión ssh al otro host. La siguiente configuración hace que cada host sea un servidor y un cliente:

  • En cada host, los archivos de configuración de Shell seguro contienen las siguientes entradas:

    ## /etc/ssh/ssh_config
    HostBasedAuthentication yes
    #
    ## /etc/ssh/sshd_config
    HostBasedAuthentication yes
    IgnoreRhosts no
  • En cada host, el archivo shosts.equiv contiene una entrada para el otro host:

    ## /etc/ssh/shosts.equiv on machine2
    machine1
    ## /etc/ssh/shosts.equiv on machine1
    machine2
  • La clave pública de cada host está en el archivo /etc/ssh/ssh_known_hosts del otro host:

    ## /etc/ssh/ssh_known_hosts on machine2
    … machine1
    ## /etc/ssh/ssh_known_hosts on machine1
    … machine2
  • Los usuarios tienen una cuenta en ambos hosts. Por ejemplo, la siguiente información aparecerá para el usuario John Doe:

    ## /etc/passwd on machine1
    jdoe:x:3111:10:J Doe:/home/jdoe:/bin/sh
    ## /etc/passwd on machine2
    jdoe:x:3111:10:J Doe:/home/jdoe:/bin/sh