Je peux accéder à un serveur A avec SSH, et à partir de là, je peux accéder au serveur B =, mais je ne peux pas accéder directement à B .
Est-il possible d'ouvrir un dossier Nautilus sur le serveur B en cliquant dans Places
→ Connect to Server
?
Oui c'est possible. J'ai la configuration suivante qui fonctionne, mais il pourrait y en avoir plus facile.
Dans le fichier ~/.ssh/config
, ajoutez les lignes suivantes:
ControlMaster auto
ControlPath /home/yourusername/.ssh/tmp/%h_%p_%r
Host A
HostName hostname.of.server.a
Host B
ProxyCommand ssh -e none A netcat -w 5 hostname.of.server.b 22
Vous devez remplacer votre nom d'utilisateur, hostname.of.sever.a et hostname.of.server.b Après cela, vous pouvez (dans Nautilus) aller dans Places-> Connect to Server (c'est en fait File-> Connect to Server sur ma machine ). Et puis entrez B
. Ce devrait être tout pour voir le serveur B.
Une chose à essayer est d'ajouter ceci à .ssh/config:
Host B
ProxyCommand ssh A nc -q0 %h %p
ForwardAgent yes
Une fois que cela est en place, vous devriez pouvoir ssh B
directement, et SSH saura "rebondir" la connexion via A en premier.
Lorsque cela fonctionne, essayez Nautilus comme vous le décrivez et voyez si la configuration de proxy fonctionne également.
Une mise à jour sur les réponses précédentes: l'utilisation de netcat pour transférer la connexion sur l'hôte intermédiaire fonctionne différemment de ssh'ing directement et échouera lorsque vous le souhaiterez, par exemple se connecter à un serveur VNC configuré pour accepter uniquement les connexions locales via un tunnel jumphost. Pour que la connexion fonctionne exactement comme une connexion directe, utilisez l'option -W présente dans les versions plus récentes du client:
Host jumphost
Hostname hostname.of.jumphost
Host target
Hostname hostname.of.target
Port 30022
ProxyCommand ssh -W %h:%p jumphost