Dans le schéma ci-dessous:

  • l'hôte A est accessible publiquement
  • l'hôte B est accessible seulement à l'interne

Il existe plusieurs façons de faire, mais en voici 2.

  • Méthode bête et méchante du relais:
    • Cette méthode consiste à se connecter par SSH sur l'hôte publique puis faire à nouveau SSH sur l'hôte privé. C'est simple et ça fonctionne plutôt bien, sauf pour les transferts de fichiers par SCP. En effet, pour  les transferts de fichiers, on doit d'abord les copier temporairement sur l'hôte publique avant de les copier sur la destination finale (client ou hôte privé, selon le sens).
  • Méthode avec l'option ProxyCommand de SSH (clients Linux, Mac ou Cygwin - OpenSSH sous Windows)
    1. Sur le client, éditer le fichier ~/.ssh/config
           Host HôteB
            ProxyCommand ssh HôteA -W HôteB:22
    2. Lancer la connexion SSH sur l'hôte B
           ssh HôteB
      ou pour un transfert de fichier:
           scp fichier HôteB:dossier_distant