Verwenden Sie bei SSH-Verbindungen einen echten Browser anstelle von w3m


10

Ich benutze Ubuntu als Desktop- und Server-Betriebssystem. Wenn ich über sshon am Server angemeldet bin terminalund eine Webseite (localhost) auf dem Server anzeigen muss, verwende ich w3m ( w3m localhost).

Leider ist w3m nicht so einfach zu handhaben, da die Seite einige große Menüs enthält und jQuery verwendet. Ich frage mich also, ob es möglich ist, einen Browser auf meinem Desktop zu verwenden, um über SSH mit einem echten Browser (Firefox oder Chrome) eine Verbindung zum Server herzustellen.

Grundsätzlich müsste eine Verbindung mit einem Browser auf meinem Desktop über SSH mit usernameund zum Server hergestellt passwordund auf diesem Server geöffnet werden localhost.

Ist dies standardmäßig möglich oder gibt es Add-Ons für Firefox / Chrome? Ich würde Firefox bevorzugen.


Keine Antwort auf Ihre Frage, aber ... was ist mit der X-Weiterleitung?.
Javier Rivera

1
Warum können Sie keine Verbindung zum Remote-Server über http herstellen? Benötigen Sie speziell die Anfrage, zu Testzwecken von localhost zu stammen? Die Weiterleitung von @Javier X, insbesondere für Firefox, ist sehr bandbreitenintensiv und ich würde sie nicht für nicht lokale Verbindungen empfehlen.
Carsten Thiel

Es ist einerseits zu Testzwecken, also muss es localhost sein. Andererseits befindet sich der Remote-Server nicht im lokalen Netzwerk und kann nicht über normales http erreicht werden.
Pit

Ja, Bandbreite ist ein Problem bei der Weiterleitung von X.
Javier Rivera

Antworten:


14

Verwenden Sie die SSH-Portweiterleitung.

Stellen Sie eine Verbindung zum Remote-Server her:

ssh -L 8080:localhost:80 user@remoteserver

Zeigen Sie nun mit Ihrem lokalen Browser auf localhost: 8080. Es sollte an localhost: 80 auf dem Remote-Server weitergeleitet werden.


Ich habe dies gerade auf einem Server in meinem lokalen Netzwerk getestet und es scheint zu funktionieren. Ich werde es später mit dem Remote-Server testen.
Pit

6

TEIL 1

Machen Sie einen Socken-Proxy mit ssh!

ssh -D 9999 user@remoteserver

Öffnen Sie nun Ihre Firefox-Einstellungen und gehen Sie zu Erweitert> Netzwerk> Einstellungen. Wählen Sie Manuelle Proxy-Konfiguration. Setzen Sie localhost für den SOCKS-Host und 9999 für den Port. Testen Sie es unter http://whatismyip.org oder einer ähnlichen Website.

Da Sie angegeben haben, dass Sie versuchen, auf eine Webseite bei localhost (relativ zu Ihrem Server) zuzugreifen, möchten Sie localhost und 127.0.0.1 möglicherweise nicht von der Verwendung des Proxys ausschließen. Natürlich können Sie auch nur die lokale IP des Servers verwenden.

Wenn Ihnen meine Erklärung nicht gefällt, haben diese Links mein Gedächtnis beim Schreiben verändert:

http://linux.die.net/man/1/ssh

http://embraceubuntu.com/2006/12/08/ssh-tunnel-socks-proxy-forwarding-secure-browsing/

https://calomel.org/firefox_ssh_proxy.html

TEIL 2

Der Fehler, den Sie bekommen haben, channel 3: open failed: connect failed: Connection refusedhat absolut nichts mit ssh zu tun. Anscheinend versuchen Sie, auf ein MySQL-Ding zuzugreifen. Dies ist eine zusätzliche Herausforderung, da MySQL standardmäßig den Zugriff von SSH-Tunneln blockiert. Ich mache kein MySQL, also weiß ich nicht, wovon ich für den Rest spreche. Ich zitiere nur die relevanten Teile des Links am Ende, die Sie lesen sollten.

Öffnen Sie /etc/mysql/my.cnf und suchen Sie den Abschnitt [mysqld]. Wenn Sie eine Zeile "Skip-Networking" sehen, kommentieren Sie diese. Fügen Sie "bind-address = 127.0.0.1" hinzu (natürlich ohne Anführungszeichen).

http://www.debuntu.org/port-forwarding-and-channel-3-open-failed-connect-failed-Connection-refused

Teil 3

Javiers Lösung ssh -L 8080:localhost:80 user@remoteserverist fantastisch, wenn Sie nur Zugriff auf den einen Standort benötigen. Sie können damit auf localhost zugreifen und den Rest Ihres Internets in Ruhe lassen. Meine Lösung mit ssh -D geht weiter und leitet tatsächlich alle Ihre http-Anforderungen an den Remote-Server weiter. Offensichtlich möchten Sie dies möglicherweise nicht wirklich. Aber ich fand es nützlich, wenn ich http-Zugriff auf alle Computer in einem Netzwerk haben wollte oder wenn ich nicht wollte, dass meine http-Anfragen über das Netzwerk gehen, mit dem ich verbunden bin (dh Online-Banking bei Starbucks. Mein gesamter Datenverkehr geht durch den ssh tunnel zu meinem heimat internet.)


Beim Anfordern von 'localhost' in Firefox wird im Terminal, in dem ich die SSH-Verbindung geöffnet habe, eine Fehlermeldung angezeigt : channel 3: open failed: connect failed: Connection refused. Ich hatte keine Zeit, es nachzuschlagen, aber vielleicht wissen Sie, was es sein könnte?
Pit

Ich habe gerade in der Manpage von ssh gesehen, dass Sie root sein müssen, um die -DOption nutzen zu können. Dies ist der Grund, warum es nicht funktioniert hat und nicht funktionieren wird, da ich keine Verbindung zum Server herstellen kann (aus Sicherheitsgründen).
Pit

Was? Ich habe dies die ganze Zeit als normaler Benutzer an beiden Enden des Tunnels verwendet. Oh ich verstehe. Sie müssen root sein, wenn Sie versuchen, einen Port wie 80 oder 21 oder einen der anderen von IANA reservierten Ports zu verwenden. Alles über 1024 sollte in Ordnung sein. Ich denke, der Fehler hat damit zu tun, dass Ihre ssh.conf vorwärts blockiert. Ich google jetzt in diese Richtung.
Djeikyb

Ich habe Ihren Fehler gegoogelt und diesen Artikel gefunden, der besagt, dass MySQL eine Sicherheitsfunktion hat, die den Zugriff von Port Forwards standardmäßig blockiert. debuntu.org/…
djeikyb

2

Sie können die X-Weiterleitung über SSH verwenden, damit alle X-Anwendungen, die Sie auf dem Server ausführen, auf Ihrem PC angezeigt werden.

  1. Fügen Sie bei der Verbindung mit SSH zum Server das Flag -X hinzu. Zum Beispiel ssh -X myserver.
  2. Installieren Sie einen GUI-Browser auf dem Server und führen Sie ihn einfach aus. Die Ausgabe wird auf Ihrem PC über die X-Weiterleitung und die sichere SSH-Verbindung angezeigt.

Wie Carsten in seinem Kommentar zu meiner Frage erwähnt hat und sich der Remote-Server nicht in meinem lokalen Netzwerk befindet, was ist mit der Bandbreite?
Pit

Sie müssten Ihre Bandbreitenanforderungen definieren. Andernfalls können Sie es ausprobieren und sehen, wie es funktioniert.
user4124
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.