15.3. Configuration d'un client OpenSSH

Pour vous connecter à un serveur OpenSSH depuis un ordinateur client, les paquetages openssh-clients et openssh doivent être préalablement installés sur cet ordinateur client.

15.3.1. Utilisation de la commande ssh

La commande ssh est un substitut sécurisé des commandes rlogin, rsh et telnet. Elle vous permet de vous connecter à un ordinateur distant et d'y exécuter des commandes.

La connexion à un ordinateur distant au moyen de ssh est semblable à la connexion en utilisant telnet. Par exemple, pour vous connecter à un ordinateur distant appelé pingouin.exemple.net, entrez la commande suivante à l'invite du shell:

ssh penguin.example.net

La première fois que vous effectuez la connexion à un ordinateur distant à l'aide de ssh le système affiche un message semblable à celui-ci:

The authenticity of host 'penguin.example.net' can't be established.
DSA key fingerprint is 94:68:3a:3a:bc:f3:9a:9b:01:5d:b3:07:38:e2:11:0c.
Are you sure you want to continue connecting (yes/no)? 

Tapez yes pour poursuivre. Ce faisant, le serveur sera ajouté à votre liste d'hôtes connus, comme le montre le message suivant:

Warning: Permanently added 'penguin.example.net' (RSA) to the list of known hosts.

Une invite vous demandera ensuite d'entrer votre mot de passe pour l'ordinateur distant. Après l'avoir entré, l'invite du shell apparaîtra sur l'ordinateur distant. Si vous n'indiquez pas de nom d'utilisateur, celui sous lequel vous êtes connecté sur l'ordinateur client local sera transmis à l'ordinateur distant. Si en revanche, vous souhaitez spécifier un nom d'utilisateur différent, utilisez la commande suivante:

ssh username@penguin.example.net

Vous pouvez aussi avoir recours à la syntaxe ssh -l nom d'utilisateur penguin.example.net.

La commande ssh peut être utilisée pour exécuter une commande sur l'ordinateur distant sans vous connecter à une invite du shell. La syntaxe est alors ssh nom d'hôte command. Si vous souhaitez, par exemple, exécuter la commande ls /usr/share/doc sur l'ordinateur distant pingouin.exemple.net, entrez la commande suivante à l'invite du shell:

ssh penguin.example.net ls /usr/share/doc

Une fois le bon mot de passe saisi, le contenu du répertoire distant /usr/share/doc sera affiché et vous reviendrez ensuite à l'invite du shell.

15.3.2. Utilisation de la commande scp

La commande scp peut être utilisée pour transférer des fichiers entre des ordinateurs au moyen d'une connexion cryptée sécurisée. Cette commande est semblable à rcp.

La syntaxe générale correspondant au transfert d'un fichier local vers un système distant est la suivante:

scp localfile username@tohostname/newfilename

Le fichier local (localfile) spécifie la source et username@tohostname:/newfilename la destination.

Pour transférer le fichier local shadowman vers votre compte dans penguin.example.net, entrez la commande suivante à l'invite du shell (remplacez nom-utilisateur par votre propre nom-d'utilisateur):

scp shadowman username@penguin.example.net:/home/username

Cette opération entraînera le transfert du fichier local shadowman vers /home/nom-utilisateur/shadowman sur penguin.example.net.

La syntaxe générale correspondant au transfert d'un fichier distant vers un système est la suivante:

scp username@tohostname:/remotefile /newlocalfile

Le fichier distant, fichier-distant, spécifie la source et nouveau fichier local spécifie newlocalfile la destination.

Il est également possible de spécifier plusieurs fichiers en tant que fichiers source. Par exemple, pour transférer le contenu du répertoire /downloads vers un répertoire existant nommé uploads sur l'ordinateur distant pingouin.exemple.net, entrez les éléments ci-dessous à l'invite du shell:

scp /downloads/* username@penguin.example.net:/uploads/

15.3.3. Utilisation de la commande sftp

L'utilitaire sftp peut être utilisé pour ouvrir une session FTP interactive sécurisée. Il est semblable à ftp mais, contrairement à ce dernier, utilise une connexion cryptée sécurisée. La syntaxe générale de cet utilitaire est sftp username@hostname.com. Une fois authentifié, vous pouvez utiliser un ensemble de commandes semblables à celles de FTP. Reportez-vous à la page de manuel relative à sftp afin de consulter une liste de ces commandes. Pour consulter cette page de manuel, exécutez la commande man sftp à l'invite du shell. L'utilitaire sftp n'est disponible que dans les versions 2.5.0p1 ou supérieures d'OpenSSH.

15.3.4. Création de paires de clés

Si vous ne voulez pas avoir à entrer votre mot de passe à chaque fois que vous utilisez ssh, scp ou sftp pour vous connecter à un ordinateur distant, vous pouvez créer une paire de clés d'autorisation.

Des clés doivent être créés pour chacun des utilisateurs. Afin de créer une paire de clés pour un utilisateur donné, suivez les étapes suivantes en tant qu'utilisateur souhaitant se connecter à des ordinateurs distants. Si vous le faites en tant que super-utilisateur, seul l'utilisateur root pourra utiliser les clés.

Depuis la version 3.0 de OpenSSH, ~/.ssh/authorized_keys2, ~/.ssh/known_hosts2 et /etc/ssh_known_hosts2 sont obsolètes. Les protocles SSH 1 et 2 partagent les fichiers ~/.ssh/authorized_keys, ~/.ssh/known_hosts et /etc/ssh/ssh_known_hosts.

Red Hat Linux 9 utilise par défaut le protocole 2 de SSH et les clés RSA.

TuyauAstuce
 

Si vous réinstallez Red Hat Linux mais souhaitez conserver votre paire de clés, sauvegardez le répertoire .ssh de votre répertoire personnel. Une fois la réinstallation terminée, copiez-le dans votre répertoire personnel (home). Ce processus peut être exécuté pour tous les utilisateurs de votre système, y compris le root.

15.3.4.1. Création d'une paire de clés RSA pour la version 2

Suivez les étapes indiquées ci-dessous afin de créer une paire de clés RSA pour la version 2 du protocole SSH. Il s'agit du démarrage par défaut avec OpenSSH 2.9

  1. Pour créer une paire de clés RSA que vous utiliserez avec la version 2 du protocole, entrez la commande suivante à l'invite du shell:

    ssh-keygen -t rsa

    Acceptez l'emplacement par défaut du fichier, à savoir ~/.ssh/id_rsa. Entrez ensuite une phrase d'accès différente du mot de passe de votre compte et confirmez-la en la tapant de nouveau.

    La clé publique est enregistrée dans ~/.ssh/id_rsa.pub. La clé privée quant à elle, est enregistrée dans ~/.ssh/id_rsa. Ne divulguez jamais votre clé privée.

  2. Changez les autorisations de votre répertoire .ssh à l'aide de la commande chmod 755 ~/.ssh.

  3. Copiez le contenu de ~/.ssh/id_rsa.pub dans ~/.ssh/authorized_keys sur l'ordinateur auquel vous désirez vous connecter. Si le fichier ~/.ssh/authorized_keys n'existe pas, vous pouvez copier le fichier ~/.ssh/id_rsa.pub dans le fichier ~/.ssh/authorized_keys sur l'autre ordinateur.

  4. Si vous utilisez GNOME, passez à la Section 15.3.4.4. Si vous n'utilisez pas le système X Window, passez à la Section 15.3.4.5.

15.3.4.2. Création d'une paire de clés DSA pour la version 2

Suivez les étapes indiquées ci-dessous afin de créer une paire de clés DSA pour la version 2 du protocole SSH.

  1. Pour créer une paire de clés DSA que vous utiliserez avec la version 2 du protocole, entrez la commande suivante à l'invite du shell:

    ssh-keygen -t dsa

    Acceptez l'emplacement par défaut du fichier, à savoir ~/.ssh/id_dsa. Entrez ensuite une phrase d'accès différente du mot de passe de votre compte et confirmez-la en la tapant de nouveau.

    TuyauAstuce
     

    Une phrase d'accès est une chaîne de mots et de caractères utilisée pour authentifier un utilisateur. Les phrases d'accès différent des mots de passe dans le sens où les phrases d'accès peuvent inclure des espaces et des tabulations, contrairement aux mots de passe. De plus, elles sont généralement plus longues que les mots de passe car elles constituent de véritables phrases et non pas de simples mots.

    La clé publique est enregistrée dans ~/.ssh/id_dsa.pub. La clé privée quant à elle est enregistrée dans ~/.ssh/id_dsa. Il est important de ne jamais communiquer votre clé privée à qui que ce soit.

  2. Changement d'autorisation pour votre répertoire .ssh à l'aide de la commande chmod 755 ~/.ssh.

  3. Copiez le contenu de ~/.ssh/id_dsa.pub dans ~/.ssh/authorized_keys sur l'ordinateur auquel vous souhaitez vous connecter. Si le fichier ~/.ssh/authorized_keys n'existe pas, vous pouvez copier le fichier ~/.ssh/id_dsa.pub dans le fichier ~/.ssh/authorized_keys sur l'autre ordinateur.

  4. Si vous utilisez GNOME, passez à la Section 15.3.4.4. Si vous n'utilisez pas le système X Window, passez à la Section 15.3.4.5.

15.3.4.3. Création d'une paire de clés RSA pour les versions 1.3 et 1.5

Suivez les étapes indiquées ci-dessous afin de créer une paire de clés RSA pour la version 1 du protocole SSH. Si vos connexions ne se font qu'entre des systèmes utilisant DSA, vous n'avez pas besoin d'une paire de clés RSA version 1.3 ou RSA version 1.5.

  1. Pour générer une paire de clés RSA (pour les versions 1.3 et 1.5 du protocole), entrez la commande suivante à l'invite du shell:

    ssh-keygen -t rsa1

    Acceptez l'emplacement par défaut du fichier (~/.ssh/identity). Entrez une phrase d'accès différente du mot de passe de votre compte. Confirmez-la en l'entrant de nouveau.

    La clé publique est enregistrée dans ~/.ssh/identity.pub. La clé privée quant à elle, est enregistrée dans ~/.ssh/identity. Ne divulguez votre clé privée à quiconque.

  2. Modifiez les autorisations de votre répertoire .ssh et de votre clé à l'aide des commandes chmod 755 ~/.ssh et chmod 644 ~/.ssh/identity.pub.

  3. Copiez le contenu de ~/.ssh/identity.pub dans le fichier ~/.ssh/authorized_keys sur l'ordinateur auquel vous souhaitez vous connecter. Si le fichier ~/.ssh/authorized_keys n'existe pas, vous pouvez copier le fichier ~/.ssh/identity.pub dans le fichier ~/.ssh/authorized_keys sur l'ordinateur distant.

  4. Si vous utilisez GNOME, passez à la Section 15.3.4.4. Si vous n'utilisez pas GNOME, passez à la Section 15.3.4.5.

15.3.4.4. Configuration de ssh-agent avec GNOME

Vous pouvez vous servir de l'utilitaire ssh-agent pour enregistrer votre phrase d'accès afin de ne pas avoir à l'entrer à chaque fois que vous effectuez une connexion ssh ou scp. Si vous utilisez GNOME, l'utilitaire openssh-askpass-gnome peut être utilisé pour obtenir votre phrase d'accès à chaque fois que vous vous connectez à GNOME et pour la garder en mémoire jusqu'à ce que vous quittiez GNOME. Ainsi, vous ne devrez pas entrer votre mot de passe ou votre phrase d'accès lorsque vous effectuerez toute connexion ssh ou scp au cours d'une session GNOME. Si vous n'utilisez pas GNOME, reportez-vous à la Section 15.3.4.5.

Afin d'enregistrer votre phrase d'accès lors d'une session GNOME, suivez les étapes suivantes:

  1. Le paquetage openssh-askpass-gnome doit être préalablement installé. Utilisez la commande rpm -q openssh-askpass-gnome afin de déterminer si ce dernier est bien installé. Si ce n'est pas le cas, procédez à son installation à l'aide de votre kit CD-ROM Red Hat Linux à partir d'un site miroir FTP Red Hat ou au moyen de Red Hat Network.

  2. Sélectionnez le bouton Menu principal (sur le panneau) => Extras => Préférences => Sessions, et cliquez sur l'onglet Programmes de démarrage. Cliquez sur Ajouter et entrez /usr/bin/ssh-add dans la zone texte de Commande de démarrage. Indiquez un numéro de priorité supérieur à toute autre commande existante afin de vous assurer qu'elle sera exécutée en dernier. Le nombre 70 par exemple (ou tout autre nombre plus élevé) est un bon choix de priorité pour ssh-add. Plus le numéro de priorité est élevé, plus la priorité est basse. Par conséquent, si vous avez d'autres programmes répertoriés, leur numéro de priorité doit être le plus bas. Cliquez sur Sortir pour sortir du programme.

  3. Quittez GNOME et connectez-vous à nouveau; en d'autres termes, redémarrez X Window. Une fois GNOME lancé, une boîte de dialogue apparaîtra et vous invitera à saisir votre ou vos phrases d'accès. Entrez la phrase demandée. Si vous avez configuré une paire de clés DSA et une paire de clés RSA, le système vous demandera d'entrer les deux phrases d'accès. À partir de ce moment, ssh, scp ou sftp ne devraient plus vous demander votre mot de passe.

15.3.4.5. Configuration de ssh-agent

Vous pouvez vous servir de l'utilitaire ssh-agent pour enregistrer votre phrase d'accès afin de ne pas avoir à l'entrer à chaque fois que vous effectuez une connexion ssh ou scp. Si vous n'utilisez pas le système X Window, suivez les étapes indiquées ci-dessous depuis l'invite du shell. En revanche, si vous utilisez GNOME, mais si vous ne voulez pas qu'il vous demande votre phrase d'accès lorsque vous vous connectez (voir la Section 15.3.4.4), vous pouvez appliquer cette procédure dans une fenêtre de terminal de type Xterm. Si vous utilisez X Window mais pas GNOME, vous pourrez appliquer cette procédure dans une fenêtre de terminal. Votre phrase d'accès ne sera cependant gardée en mémoire que pour cette fenêtre de terminal; il ne s'agit pas d'un paramètre global.

  1. À l'invite du shell, tapez la commande suivante:

    exec /usr/bin/ssh-agent $SHELL
  2. Tapez ensuite la commande:

    ssh-add 

    et entrez votre ou vos phrases d'accès. Si vous avez plusieurs paires de clés configurées, le système vous invitera à entrer les phrases d'accès correspondantes.

  3. Dès que vous vous déconnectez, vos phrases d'accès sont effacées de mémoire dans le système. Vous devez exécuter ces deux commandes à chaque fois que vous vous connectez à une console virtuelle ou que vous ouvrez une fenêtre de terminal.