Verwenden Sie SSH, um einen HTTP-Proxy ohne Browser zu erstellen

1051
JoeSlav

Ich versuche, über den Browser meines Geräts eine HTTP (S) -Seite zu erreichen. Mein Gerät kann diese Website nur über einen doppelten SSH-Tunnel erreichen.

Mit dieser Technik kann ich meinen Firefox-Browser so einrichten, dass er erfolgreich einen SSH-Tunnel auf einem meiner Server aufruft SERVER1.

Allerdings SERVER1kann nicht auf die Website zu bekommen, die ich brauche. Zum Glück SERVER1kann SSH zu einem anderen SERVER2wer kann.

Nun könnte ich rennen:

SERVER1 $ ssh -D 12345 myuser@SERVER2 

und noch einen Tunnel von SERVER1bis erstellen SERVER2, aber mir ist nicht klar, wie der "Firefox" -Teil ohne Firefox ausgeführt wird SERVER1.

Darüber hinaus befindet sich die Website auf einem nicht standardmäßigen Port (sagen wir 8765), daher bin ich mir nicht sicher, ob das export http_proxyfunktionieren würde.

Wie würde ich das angehen? Vielen Dank

0
Sie möchten mit einem JumpHost nachsehen - https://ma.ttias.be/use-jumphost-ssh-client-configurations/ ivanivan vor 6 Jahren 0

2 Antworten auf die Frage

5
glallen

Duplikat von SOCKS-Proxies verketten?

Proxies ketten: https://superuser.com/a/843766/19867

ssh -tt -v -L1234:localhost:12345 user@server1 ssh -t -D 12345 user@server2 
1
allo

Richten Sie zuerst eine ProxyJumpKette zum Zielserver ein. Das kann in Ihrer ssh-config so aussehen

Host SERVER2  ProxyJump SERVER1 

Sie können weitere Jumphosts mit verketten ProxyJump jumphost1,jumphost2

Dann verwenden ssh -D 1234 SERVER2und stellen Sie localhost:1234als Socken Proxy im lokalen firefox.

Eine Alternative ist die ssh -LWeiterleitung des HTTP-Ports, kann jedoch komplizierter sein, wenn der Server den Hostnamen für virtuelle Hosts oder die Auswahl eines TLS-Zertifikats verwendet.

Das Schöne daran ProxyJumpist, dass Sie nicht darüber nachdenken müssen, ob Sie bei der Einrichtung alle ssh-Optionen wie gewohnt verwenden und den Hostnamen so verwenden können, als könnten Sie ihn direkt erreichen.