Utilisation d'une passerelle avec ssh

Les connexions ssh entre les machines du département et l'extérieur de l'université sont restreintes.  Pour que cela fonctionne, il est nécessaire de passer par une passerelle : gate-info.iut-bm.univ-fcomte.fr.

Le but de ce document est de donner quelques indications pour configurer ssh afin d'utiliser la passerelle automatiquement.  La première partie traite des connexions de  l'extérieur vers l'intérieur de l'université, et la deuxième partie de l'intérieur vers l'extérieur.

Dans les deux cas, la configuration est à faire sur la machine cliente, c'est-à-dire sur celle qui initie la connexion.  La configuration est enregistrée dans le fichier ~/.ssh/config.  Ne pas hésiter à créer le répertoire ~/.ssh et/ou le fichier ~/.ssh/config s'ils n'existent pas.  On pourra consulter la page du manuel ssh_config(5) pour tous les détails.

On notera enfin qu'un ordinateur portable connecté par eduroam est considéré comme étant à l'extérieur de l'université.

Depuis l'extérieur vers l'intérieur

Pour pouvoir se connecter en ssh sur les machines du département, il faut demander à ssh d'utiliser la passerelle gate-info.iut-bm.univ-fcomte.fr.  Cela peut se faire en ajoutant les lignes suivantes dans le fichier ~/.ssh/config :

1
2
3
4
5
6
7
8
9
10
11
# la connexion vers la passerelle est directe
Host gate-info.iut-bm.univ-fcomte.fr
        ProxyCommand none
 
# pour les autres machines de *.iut-bm.univ-fcomte.fr,
# utiliser la passerelle
Host *.iut-bm.univ-fcomte.fr
        User VOTRE_LOGIN_IUT
        ProxyCommand ssh -W %h:%p gate-info.iut-bm.univ-fcomte.fr
        ForwardAgent yes
        ForwardX11 yes

Cela doit bien évidemment être fait sur la machine cliente (machine personnelle par exemple).  Remplacer également VOTRE_LOGIN_IUT par votre login !

Ensuite, la connexion se fait simplement en indiquant la machine destination.  Par exemple :

$ ssh 912e006-01.iut-bm.univ-fcomte.fr

Depuis l'intérieur vers l'extérieur

Les connexions depuis les machines du département vers l'extérieur doivent elles aussi passer par la passerelle.  Il faut pour cela configurer ssh sur votre compte à l'IUT.   Par exemple, pour autoriser les connexions ssh vers github.com, on mettra dans le fichier ~/.ssh/config les lignes suivantes :

1
2
3
# utiliser gate-info pour se connecter à github.com
Host github.com
        ProxyCommand ssh -W %h:%p gate-info.iut-bm.univ-fcomte.fr

Comme précédemment, il est possible d'utiliser des jokers pour spécifier des ensembles de machines.  Ceci est laissé en exercice.

Utilisation de clefs ssh

Les connexions seront encore simplifiées (pas besoin de taper deux fois le mot de passe) si vous vous générez une paire de clefs et les utilisez pour les connexions. Je vous renvoie pour cela aux cours de système.

Remarque

Depuis la version 7.3 de OpenSSH, il est possible d'utiliser l'option -J ou la directive ProxyJump à la place de ProxyCommand dans le fichier ssh_config. Consulter le manuel pour les détails.