J'ai une entrée dans ~ / .ssh / config sur mon ordinateur à la maison qui ressemble à ceci:
host foo bar
ProxyCommand ssh -x -a -q gateway.example.com nc %h 22
où gateway.example.com
est un serveur au travail qui est connecté à la fois à l'Internet public et à un réseau interne. La boîte de passerelle résout foo et bar en utilisant des entrées dans / etc / hosts.
Mon problème est que je dois atteindre une boîte qui se trouve de l'autre côté de foo
. Appelons ça "baz". L'hôte "baz" est sur un autre réseau privé auquel foo est connecté, mais pas celui auquel "gateway" est connecté.
J'ai essayé d'utiliser ceci:
host baz
ProxyCommand ssh -x -a -q gateway/example.com ssh foo nc %h 22
Mais cela ne fonctionne pas, et je suis un peu hors de ma profondeur. Comment puis-je faire cela?
Je ne pense pas que cela devrait avoir d'importance, mais je le fais dans Ubuntu 10.
-W
travailler. Il repose sur le code de redirection de port côté serveur, qui est beaucoup plus ancien.À l'aide de clés privées stockées sur votre ordinateur local, entrez cette commande avec les chemins de clés privés, les noms d'utilisateur du shell et les noms d'hôte / adresses IP modifiés en fonction de vos besoins locaux-> passerelle-> ssh de destination.
Notez que ProxyCommand est préféré au transfert d'agent pour atténuer le risque de compromettre l'authentification par clé privée (en utilisant la passerelle et la connexion d'agent ssh local pour compromettre d'autres hôtes comme si le pirate de l'air avait la clé privée) lorsqu'une passerelle / cavalier est piraté par root.
Commande unique pour proxy SSH vers un serveur (conservez les deux clés privées sur l'ordinateur local):
la source
C'est ce que je fais pour sauter du réseau protégé vers Internet.
J'utilise mon ordinateur portable pour travailler avec du code lors de la construction . Étant donné que la construction est limitée à l'accès à Internet, pour cloner un dépôt de github.com, je dois d'abord sauter dans la boîte à outils , qui n'a pas accès à Internet non plus. Mais il peut accéder à gw , qui dispose d'Internet.
Comme ça:
Mon
.ssh/config
sur la construction :Explication.
git clone [email protected]:aRepo/There
ça marche!Clair?
la source