Configurer SSH pour un tunnel automatique

Hop Simple

Un tunnel automatique vous autorisera &agraev; rediriger les connections vers les machines &agraev; l'intérieur du CERN dans un tunnel, sans aucune intervention de votre part. Disons que vous souhaitez accéder &agraev; votre ordinateur au CERN appelé “CernDesktop” depuis chez vous. Supposez aussi que votre nom d'utilisateur CERN (compte sur LXPLUS) est “CernUsername”. Pour définir le tunnel automatique, ajoutez simplement les lignes suivantes dans votre fichier .ssh/config sur votre ordinateur de la maison (utilisant Linux):

Host lxplus.cern.ch
  user CernUsername

Cela ordonne &agraev; SSH de toujours se connecter en tant que “cernusername” lors de la connexion &agraev; LXPLUS, si aucun utilisateur n'est spécifié. Ensuite, ajoutez les lignes suivantes dans le même fichier:

Host CernDesktop.cern.ch
  ProxyCommand ssh lxplus.cern.ch /usr/bin/nc %h %p 2> /dev/null
  GSSAPITrustDNS no

La première ligne dit &agraev; SSH que “cerndesktop.cern.ch” doit être atteint en executant la commande donnée. Maintenant ssh cerndesktop.cern.ch marchera comme un charme.

Ainsi, SSH se connecte à LXPLUS et transfère la connexion &agraev; “cerndesktop”. La seconde ligne s'occupe des problè de DNS avec les clusters. Vous en avez seulement besoin si vous utilisez un cluster comme LXPLUS. Veuillez noter que la chaîne de caractères après Host peut contenir plusieurs noms, séparés par des espaces, et peut aussi contenir des jokers. Par exemple lxvo*.cern.ch lxbuild*.cern.ch. Cependant, n'utiliser surtout pas *.cern.ch, cela créerait une boucle infinie!

Hops Multiples

La méthode est récursive, et donc extrêmement puissante quand vous avez besoin de passer par plusieurs machines. Ainsi pour le chemin: “Home → LXPLUS → ProxyToHiddenNet → CriticalMachine”, le fichier .ssh/config suivant sur votre ordinateur &agraev; la maison vous permettra de vous connecter directement sur “CriticalMachine”:

Host criticalmachine
  ProxyCommand ssh ProxyToHiddenNet /usr/bin/nc %h %p 2> /dev/null
Host ProxyToHiddenNet
  user LocalUsernameOnProxy
  ProxyCommand ssh lxplus.cern.ch /usr/bin/nc %h %p 2> /dev/null
  GSSAPITrustDNS no
Host lxplus.cern.ch
  user CernUsername

Optimiser le nombre de connections et l'utilisations des mots de passe

Après avoir configuré des tunnels automatiques, vous avez peut-être noté qu'un tunnel est ouvert par connexion, et que votre mot de passe est demandé à chaque hop (donc 3 fois pour l'exemple précédent). Ceci peut être optimisé en utilisant les options ControlPath et ControlMaster dans le fichier .ssh/config. Pour cela, ajoutez la section suivante:

Host *.cern.ch
  ControlPath ~/.ssh/%h.%p.%r
  ControlMaster auto

Tous vos tunnels vers des machines “*.cern.ch” seront partagés. Vous réduisez le nombre de connexions et évitez de taper votre mot de passe pour toutes les connexions, sauf pour la première.