Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
documentation:tutorials:ssh:clef_agent_ssh [2020/08/25 15:58] – modification externe 127.0.0.1 | documentation:tutorials:ssh:clef_agent_ssh [2023/01/13 09:23] (Version actuelle) – supprimée ccalugar | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Utiliser des clefs SSH et un agent-ssh ====== | ||
- | Le client SSH s’utilise le plus souvent avec un couple '' | ||
- | |||
- | Toutefois, | ||
- | (authentification par clef privée/ | ||
- | pour s’authentifier sur la machine distante. \\ De plus, en utilisant un agent SSH, on peut s' | ||
- | |||
- | ===== Générer un jeu de clefs ===== | ||
- | |||
- | Pour générer son jeu de clefs personnel, on utilise les même commandes que pour [[documentation: | ||
- | |||
- | <note important> | ||
- | |||
- | Pour Windows, [[documentation: | ||
- | |||
- | Pour Linux, BSD et MacOS X, voici les étapes à suivre : | ||
- | |||
- | ==== Étape 1 : Démarrer la génération d'un jeu de clefs ==== | ||
- | |||
- | Dans un '' | ||
- | |||
- | <code bash> | ||
- | user@host: | ||
- | Generating public/ | ||
- | Enter file in which to save the key (/ | ||
- | <Appuyer la touche Enter> | ||
- | Created directory '/ | ||
- | Enter passphrase (empty for no passphrase): | ||
- | </ | ||
- | |||
- | |||
- | <WRAP center round info 60%> | ||
- | Les nouveaux paramètres par défaut de ssh peuvent préférer générer une clef de type '' | ||
- | </ | ||
- | |||
- | ==== Étape 2 : Choisir une bonne passphrase ==== | ||
- | |||
- | La passphrase est importante, c'est elle qui verrouille votre clef privée. Une bonne passphrase doit comprendre **au moins 15 caractères** | ||
- | |||
- | Ceci est une **mauvaise passphrase** : | ||
- | < | ||
- | toto | ||
- | </ | ||
- | |||
- | Si la passphrase est trop courte, ou trop mauvaise, le programme va répondre : | ||
- | <code bash> | ||
- | Enter same passphrase again: | ||
- | passphrase too short: have 4 bytes, need > 4 | ||
- | Saving the key failed: / | ||
- | </ | ||
- | |||
- | **failed...** | ||
- | |||
- | Ceci est une **bonne passphrase** : | ||
- | < | ||
- | V0ici 1 ex3mple de passphrase c0mpl1quée, | ||
- | </ | ||
- | |||
- | Ceci est aussi une **bonne passphrase** : | ||
- | < | ||
- | Une bouteille de " | ||
- | </ | ||
- | |||
- | ==== Étape 3 : Finir la génération du jeu de clefs ==== | ||
- | |||
- | Et '' | ||
- | <code bash> | ||
- | Enter same passphrase again: | ||
- | Your identification has been saved in / | ||
- | Your public key has been saved in / | ||
- | </ | ||
- | |||
- | Une empreinte de vérification (fingerprint) est également générée (voir ci-dessous) : | ||
- | |||
- | <code bash> | ||
- | The key fingerprint is: | ||
- | 7a: | ||
- | The key's randomart image is: | ||
- | +--[ RSA 2048]----+ | ||
- | | | | ||
- | | | | ||
- | | . | | ||
- | | o . | ||
- | | o | ||
- | | . o . . . | | ||
- | | o + + + + | | ||
- | | | ||
- | | o+.o. ..o | | ||
- | +-----------------+ | ||
- | </ | ||
- | |||
- | ==== Étape 4 : Sauvegarder le jeu de clefs ==== | ||
- | |||
- | Vous pouvez copier/ | ||
- | |||
- | **Sauvegardez** votre clef privée ('' | ||
- | |||
- | ===== Charger l' | ||
- | |||
- | ==== Linux / BSD ==== | ||
- | |||
- | Il existe tout un tas de méthodes : | ||
- | |||
- | * Utiliser les programmes '' | ||
- | |||
- | ou | ||
- | |||
- | * charger l' | ||
- | |||
- | <code bash> | ||
- | eval `ssh-agent` | ||
- | ssh-add | ||
- | </ | ||
- | |||
- | ou | ||
- | |||
- | * Installer et utiliser [[http:// | ||
- | |||
- | Vous pouvez utiliser un script (dans votre '' | ||
- | <code bash> | ||
- | # add key(s) to agent | ||
- | eval `keychain --eval --agents ssh id_rsa` | ||
- | </ | ||
- | |||
- | * KDE Startup script : | ||
- | |||
- | <code bash> | ||
- | #! /bin/bash | ||
- | # Put this in ~/ | ||
- | # or ~/ | ||
- | export SSH_ASKPASS=/ | ||
- | / | ||
- | </ | ||
- | |||
- | ==== MacOS X ==== | ||
- | |||
- | Sur MacOS X, il existe aussi différentes méthodes : | ||
- | |||
- | * Installer et utiliser [[http:// | ||
- | |||
- | Vous pouvez utiliser un script (dans votre '' | ||
- | <code bash> | ||
- | # add key(s) to agent | ||
- | eval `keychain --eval --agents ssh id_rsa` | ||
- | </ | ||
- | |||
- | ou | ||
- | |||
- | * Si vous utilisez MacOSX Keychain, ajoutez l' | ||
- | <code bash> | ||
- | # add key(s) to agent | ||
- | eval `keychain --eval --agents ssh --inherit any id_rsa` | ||
- | </ | ||
- | |||
- | <note important> | ||
- | |||
- | ou | ||
- | |||
- | * Installer et utiliser [[http:// | ||
- | |||
- | |||
- | <note tip>Pour bénéficier de " | ||
- | |||
- | |||
- | |||
- | ==== Windows ==== | ||
- | |||
- | Sur Windows, il faut utiliser le logiciel PuTTY/ | ||
- | |||
- | ===== Diffuser la clef publique ===== | ||
- | |||
- | Pour que le login automatique (ie: sans mot de passe, **mais avec passphrase**) fonctionne, votre clef publique (id_rsa.pub) doit se trouver sur tous les serveurs cibles, dans le fichier '' | ||
- | |||
- | * Pour le PSMN, on peut simplement faire comme ceci (le ''/ | ||
- | |||
- | <code bash> | ||
- | scp ~/ | ||
- | |||
- | votrelogin@allo-psmn' | ||
- | id_rsa.pub | ||
- | </ | ||
- | |||
- | <note important> | ||
- | |||
- | <code bash> | ||
- | scp ~/ | ||
- | votrelogin@allo-psmn' | ||
- | id_rsa.pub | ||
- | </ | ||
- | |||
- | <code bash> | ||
- | ssh votrelogin@allo-psmn | ||
- | votrelogin@allo-psmn' | ||
- | |||
- | > cat .ssh/ | ||
- | > exit | ||
- | </ | ||
- | |||
- | Si vous avez bien chargé votre agent-ssh, vous pouvez maintenant vous connecter sur '' | ||
- | |||
- | <code bash> | ||
- | user@host: | ||
- | </ | ||
- | (votrelogin correspond à votre login au PSMN) | ||
- | |||
- | ===== Exemples et Cas particuliers ===== | ||
- | |||
- | ==== Exemple de configuration pour Linux et BSD==== | ||
- | |||
- | On peut automatiser les étapes de la connexion en utilisant le fichier '' | ||
- | |||
- | * '' | ||
- | |||
- | <code bash config> | ||
- | Host * | ||
- | ServerAliveInterval 60 | ||
- | ForwardX11Timeout 1d | ||
- | TCPKeepAlive yes | ||
- | ForwardAgent yes | ||
- | ForwardX11 yes # pour Linux | ||
- | # ForwardX11Trusted yes # pour MacOSX | ||
- | Compression yes | ||
- | StrictHostKeyChecking no | ||
- | HashKnownHosts no | ||
- | |||
- | ### | ||
- | # passerelle interne | ||
- | Host allo-psmn | ||
- | User <login PSMN> | ||
- | HostName allo-psmn.psmn.ens-lyon.fr | ||
- | |||
- | # connexion à x5650comp1 depuis l' | ||
- | Host comp1 | ||
- | User <login PSMN> | ||
- | Hostname x5650comp1 | ||
- | ProxyCommand ssh <login PSMN> | ||
- | |||
- | # connexion à e5-2670comp2 depuis l' | ||
- | Host comp2 | ||
- | User <login PSMN> | ||
- | Hostname e5-2670comp2 | ||
- | ProxyCommand ssh <login PSMN> | ||
- | |||
- | ### | ||
- | # passerelle externe | ||
- | Host allo-externe | ||
- | User <login PSMN> | ||
- | ProxyCommand ssh <login PSMN> | ||
- | # User <login ENS> | ||
- | # ProxyCommand ssh <login ENS> | ||
- | |||
- | # connexion à x5650comp1 depuis l' | ||
- | Host comp1-ext | ||
- | User <login PSMN> | ||
- | HostName x5650comp1 | ||
- | ProxyCommand ssh <login PSMN> | ||
- | |||
- | # connexion à e5-2670comp2 depuis l' | ||
- | Host comp2-ext | ||
- | User <login PSMN> | ||
- | Hostname e5-2670comp2 | ||
- | ProxyCommand ssh <login PSMN> | ||
- | |||
- | </ | ||
- | |||
- | Bien évidemment, | ||
- | |||
- | La liste des serveurs de connexion du PSMN est disponible [[documentation: | ||
- | |||
- | Ce fichier contient déjà des rebonds. Pour plus d' | ||
- | |||
- | ==== Exemple de configuration pour MacOS X ==== | ||
- | |||
- | Sur MacOS X, il vaut mieux utiliser l' | ||
- | |||
- | * '' | ||
- | |||
- | <code bash config> | ||
- | Host * | ||
- | ServerAliveInterval 60 | ||
- | ForwardX11Timeout 1d | ||
- | TCPKeepAlive yes | ||
- | ForwardAgent yes | ||
- | # ForwardX11 yes # pour Linux | ||
- | ForwardX11Trusted yes # pour MacOSX | ||
- | Compression yes | ||
- | StrictHostKeyChecking no | ||
- | HashKnownHosts no | ||
- | |||
- | ### | ||
- | # passerelle interne | ||
- | Host allo-psmn | ||
- | User <login PSMN> | ||
- | HostName allo-psmn.psmn.ens-lyon.fr | ||
- | |||
- | # connexion à x5650comp1 depuis l' | ||
- | Host comp1 | ||
- | User <login PSMN> | ||
- | Hostname x5650comp1 | ||
- | ProxyCommand ssh <login PSMN> | ||
- | |||
- | # connexion à e5-2670comp2 depuis l' | ||
- | Host comp2 | ||
- | User <login PSMN> | ||
- | Hostname e5-2670comp2 | ||
- | ProxyCommand ssh <login PSMN> | ||
- | |||
- | ### | ||
- | # passerelle externe | ||
- | Host allo-externe | ||
- | User <login PSMN> | ||
- | #HostName allo-psmn | ||
- | ProxyCommand ssh <login PSMN> | ||
- | |||
- | # connexion à x5650comp1 depuis l' | ||
- | Host comp1-ext | ||
- | User <login PSMN> | ||
- | HostName x5650comp1 | ||
- | ProxyCommand ssh <login PSMN> | ||
- | |||
- | # connexion à e5-2670comp2 depuis l' | ||
- | Host comp2-ext | ||
- | User <login PSMN> | ||
- | Hostname e5-2670comp2 | ||
- | ProxyCommand ssh <login PSMN> | ||
- | |||
- | </ | ||
- | |||
- | Bien évidemment, | ||
- | |||
- | La liste des serveurs de connexion du PSMN est disponible [[documentation: | ||
- | |||
- | Ce fichier contient déjà des rebonds. Pour plus d' | ||
- | |||
- | ==== export X pour MacOS X ==== | ||
- | |||
- | Pour pouvoir utiliser " | ||
- | |||
- | ==== Rebonds et multiples rebonds ==== | ||
- | |||
- | Pour plus d' |