Gestion de l'accès au shell sécurisé dans Oracle® Solaris 11.2

Quitter la vue de l'impression

Mis à jour : Septembre 2014
 
 

Configuration de l'authentification basée sur l'hôte pour le shell sécurisé

La procédure suivante définit un système de clé publique où la clé publique du client est utilisée pour l'authentification sur le serveur. L'utilisateur doit également créer une paire de clés publiques ou privées.

Dans cette procédure, les termes client et hôte local désignent la machine sur laquelle un utilisateur saisit la commande ssh. Les termes serveur et hôte distant font tous deux référence au système que le client tente d'atteindre.

Avant de commencer

Vous devez prendre le rôle root. Pour plus d'informations, reportez-vous à la section A l’aide de vos droits administratifs attribués du manuel Sécurisation des utilisateurs et des processus dans Oracle Solaris 11.2 .

  1. Sur le client, activez l'authentification basée sur l'hôte.

    Dans le fichier de configuration du client, /etc/ssh/ssh_config, tapez l'entrée suivante :

    HostbasedAuthentication yes

    Pour connaître la syntaxe du fichier de configuration, reportez-vous à la page de manuel ssh_config(4).

  2. Sur le serveur, activez l'authentification basée sur l'hôte.

    Dans le fichier de configuration du serveur, /etc/ssh/sshd_config, saisissez la même entrée :

    HostbasedAuthentication yes

    Pour connaître la syntaxe du fichier, reportez-vous à la page de manuel sshd_config(4).

  3. Sur le serveur, vous ou l'utilisateur devez configurer un fichier qui permet au client d'être reconnu en tant qu'hôte de confiance.

    Pour plus d'informations, reportez-vous à la section FILES de la page de manuel sshd(1M).

    • Si vous effectuez la configuration, ajoutez le client sous la forme d'une entrée pour le fichier du serveur /etc/ssh/shosts.equiv.
      client-host
    • Si les utilisateurs effectuent la configuration, ils doivent ajouter une entrée pour le client dans leur fichier ~/.shosts sur le serveur.
      client-host
  4. Sur le serveur, vérifiez que le démon sshd peut accéder à la liste des hôtes de confiance.

    Définissez IgnoreRhosts sur no dans le fichier /etc/ssh/sshd_config.

    ## sshd_config
    IgnoreRhosts no
  5. Assurez-vous que les utilisateurs de Shell sécurisé sur votre site possèdent des comptes sur les deux hôtes.
  6. Placez la clé publique du client sur le serveur en suivant l'une des méthodes suivantes :
    • Modifiez le fichier sshd_config sur le serveur, puis demandez à vos utilisateurs d'ajouter les clés d'hôte publiques du client à leur fichier ~/.ssh/known_hosts.
      ## sshd_config
      IgnoreUserKnownHosts no

      Pour des instructions d'utilisation, reportez-vous à la section Génération d'une paire clé publique/clé privée à utiliser avec le shell sécurisé.

    • Copiez la clé publique du client sur le serveur.

      Les clés d'hôte sont stockées dans le répertoire /etc/ssh. Ces clés sont généralement générées par le démon sshd à la première initialisation.

      1. Ajoutez la clé au fichier /etc/ssh/ssh_known_hosts sur le serveur.

        Sur le client, saisissez la commande suivante sur une seule ligne, sans barre oblique inverse.

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

        Remarque -  Si des clés d'hôte manquent sur le serveur, l'utilisation du shell sécurisé génère un message d'erreur semblable à celui-ci :
        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. Lorsque vous y êtes invité, indiquez votre mot de passe de connexion.

        Lorsque le fichier est copié, le message "Host key copied" (Clé d'hôte copiée) s'affiche.

        Chaque ligne du fichier /etc/ssh/ssh_known_hosts se compose de champs séparés par des espaces :

        hostnames algorithm-name publickey comment
      3. Modifiez le fichier /etc/ssh/ssh_known_hosts et ajoutez RemoteHost comme premier champ de l'entrée copiée.
        ## /etc/ssh/ssh_known_hosts File
        RemoteHost <copied entry>
Exemple 1-1  Configuration de l'authentification basée sur l'hôte

    Dans l'exemple ci-dessous, chaque hôte est configuré en tant que serveur et en tant que client. Un utilisateur de l'un ou l'autre hôte peut lancer une connexion ssh à l'autre hôte. La configuration suivante convertit chaque hôte en serveur et client :

  • Sur chaque hôte, les fichiers de configuration Shell sécurisé contiennent les entrées suivantes :

    ## /etc/ssh/ssh_config
    HostBasedAuthentication yes
    #
    ## /etc/ssh/sshd_config
    HostBasedAuthentication yes
    IgnoreRhosts no
  • Sur chaque hôte, le fichier shosts.equiv contient une entrée pour l'autre hôte :

    ## /etc/ssh/shosts.equiv on machine2
    machine1
    ## /etc/ssh/shosts.equiv on machine1
    machine2
  • La clé publique pour chaque hôte est contenue dans le fichier /etc/ssh/ssh_known_hosts sur l'autre hôte :

    ## /etc/ssh/ssh_known_hosts on machine2
    … machine1
    ## /etc/ssh/ssh_known_hosts on machine1
    … machine2
  • Les utilisateurs possèdent un compte sur les deux hôtes. Par exemple, les informations suivantes s'afficheraient pour l'utilisateur 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