Utilisation ProxyCommand
Tu vois man ssh_config
. Je recommande d'utiliser ProxyCommand
. Prenons votre scénario d'origine:
- Ordinateur A (votre ordinateur)
- Ordinateur B (un nom d'hôte proxy)
- Ordinateur C (accessible uniquement via SSH à partir de l'ordinateur B)
Modifiez ~/.ssh/config
avec le contenu suivant.
Host computerb
HostName <hostname or IP of Computer B>
Host computerc 192.168.35.*
ProxyCommand ssh computerb nc -w 180 %h %p
Vous pourrez désormais accéder de manière transparente à l'ordinateur C. Par exemple
ssh computerc
Avantages de cette méthode
Plus sécurisé
Vous n'avez besoin que de votre clé privée pour être sur l'ordinateur A (votre ordinateur). La nc
commande agira comme un proxy dans lequel SSH cryptera le trafic. Cela inclut l'authentification. C'est une très mauvaise idée de distribuer votre clé privée sur plusieurs serveurs (car tout serveur compromis avec votre clé privée compromet finalement votre clé privée).
Correspond à plusieurs destinations
On peut faire correspondre plusieurs ordinateurs de destination à l'aide Host
. Un seul ordinateur ou tout ordinateur au sein d'un réseau spécifique (par exemple 192.168.35.0/24
dans l'exemple ci-dessus) à proxy via l'ordinateur B. Il sert également d'alias.
ssh 192.168.35.27
Dans l'exemple ci-dessus, il effectuera un proxy via l'ordinateur B pour accéder à l'adresse IP.
Mandataires en guirlande
En utilisant cette méthode, vous pouvez chaîner autant de proxys automatiques que nécessaire. Par exemple, vous pouvez ajouter un ordinateur D qui n'est accessible qu'à partir de l'ordinateur C et il fonctionnera de manière transparente.
Host computerd
ProxyCommand ssh computerc nc -w 180 %h %p
ssh computerd
sera automatiquement proxy via l'ordinateur C et l'ordinateur B dans les ssh_config
exemples ci-dessus .