Zugriff auf die Webseite über ssh


13

Ich muss auf den IEEE xplore zugreifen, kann ihn aber nicht aus dem Institut herunterladen.

Ich kann mich über ssh in den Server des Instituts einloggen,

Wie kann ich über den Institutsserver via ssh auf IEEE xplore zugreifen?

Ich habe nach Lösungen gesucht, eine Antwort:

ssh -L 8080:localhost:80 user@remoteserver

und dann sagt er:

Zeigen Sie nun mit Ihrem lokalen Browser auf localhost: 8080. Es sollte an localhost weitergeleitet werden: 80 auf dem Remote-Server. ### Aber ich weiß immer noch nicht, wie ich meinen Laptop konfigurieren soll. Ich verwende Chrome.

Ich bedanke mich sehr für Ihre Hilfe!


Antworten:


22

Erste Methode:

Starten Sie einen SSH-Tunnel

Um Ihren SSH-Tunnel zu initiieren, öffnen Sie einfach das Terminal und stellen Sie mit den folgenden Flags eine Verbindung zu Ihrem Remote-Server über SSH her:

ssh -D 8080 -C -N username@example.com

Surfen Sie mit Ihrem SSH-Tunnel im Internet (Chrome)

Nun können Sie mit unserem neuen SSH-Tunnel im Internet surfen.

  • Öffnen Sie Google Chrome
  • Wählen Sie das Schraubenschlüsselsymbol oben rechts
  • Einstellungen auswählen'
  • Wählen Sie "Erweiterte Einstellungen anzeigen ...".
  • Wählen Sie "Proxy-Einstellungen ändern ...".
  • Wählen Sie "SOCKS Proxy"
  • Geben Sie '127.0.0.1' ein.
  • Geben Sie den Port '8080' ein
  • Speichern Sie die Änderungen mit 'OK'

Durchsuchen Sie Google nach "my ip" und überprüfen Sie, wie Ihre IP-Adresse jetzt lautet.

Dadurch wird unser SSH-Tunnel auf Port 8080 gestartet und der gesamte Datenverkehr (sicher) über den Server unter example.com weitergeleitet.

Verlassen des SSH-Tunnels

Um den SSH-Tunnel zu verlassen, deaktivieren Sie einfach den SOCKS-Proxy in Ihrem Browser.

Quelle

Zweite Methode:

Mit der Shellinabox geht das ganz einfach

Stellen Sie sicher, dass Sie Universe Repository überprüft haben

Installieren

 $ sudo apt-get install openssl shellinabox

Shellinabox konfigurieren

Standardmäßig überwacht shellinaboxd den TCP-Port 4200 auf localhost. Während der Installation wird ein neues selbstsigniertes SSL-Zertifikat erstellt, das automatisch unter „/ var / lib / shellinabox“ erstellt wird, um das HTTPS-Protokoll zu verwenden.

$ sudo vi /etc/default/shellinabox

# specify the IP address of a destination SSH server
SHELLINABOX_ARGS="--o-beep -s /:SSH:172.16.25.125"

# if you want to restrict access to shellinaboxd from localhost only
SHELLINABOX_ARGS="--o-beep -s /:SSH:172.16.25.125 --localhost-only"

NB: Ersetzen Sie die IP 172.16.25.125 durch Ihre

Shellinabox starten

Sobald Sie mit der Konfiguration fertig sind, können Sie den Dienst starten

$ sudo service shellinaboxd start

Überprüfen Sie die Shellinabox

Lassen Sie uns nun überprüfen, ob Shellinabox auf Port 4200 ausgeführt wird, indem Sie den Befehl "netstat" verwenden.

$ sudo netstat -nap | grep shellinabox
or
# netstat -nap | grep shellinabox

tcp        0      0 0.0.0.0:4200            0.0.0.0:*               LISTEN      12274/shellinaboxd

Öffnen Sie nun Ihren Webbrowser und navigieren Sie zu 'https: // "Your-IP-Adresse: 6175"'. Sie sollten ein webbasiertes SSH-Terminal sehen können. Melden Sie sich mit Ihrem Benutzernamen und Passwort an, und Sie sollten Ihre Shell-Eingabeaufforderung erhalten.

Bildbeschreibung hier eingeben

Quelle


@maythus, vielen Dank, deine Antworten sind großartig. Ich löse mein Problem mit der Lösung 1.
ulyssis2

@ ulyssis2 Du bist sehr willkommen Kumpel
Maythux

@ Kimerseen Sie sind willkommen Freund
Maythux


2

Das von Ihnen angegebene Beispiel ist korrekt, aber etwas irreführend. Das sollte funktionieren:

ssh -L 8080:<remote-web-host-you-want-to-see>:80 remote-user@remote-ssh-server

Stellen Sie sich zum Beispiel eine Remote-Box vor, auf der ssh ausgeführt wird und die auf diese Webseite zugreifen kann, die ich lokal sehen möchte:

http://192.168.1.2/index.html

Um einen Tunnel auf meiner lokalen Box zu erstellen, mit dem ich zu dieser Remote-Seite navigieren kann, führe ich Folgendes lokal aus:

ssh -L 8080:192.168.1.2:80 user@remote-ssh-server

Und dann besuche ich in einem Webbrowser:

http: // localhost: 8080 / index.html

Wenn Sie den Port-Bezeichner weglassen müssen (oder möchten), müssen Sie den Tunnel als Root öffnen, da 80 ein "privilegierter" Port ist (<1024):

sudo ssh -L 80:<remote-web-host-you-want-to-see>:80 remote-user@remote-ssh-server

Dann können Sie einfach vor Ort besuchen:

http: //localhost/index.html

Es ist keine andere Konfiguration erforderlich.

Dies funktioniert übrigens nur für einen einzelnen Host, den Sie lokal anzeigen möchten. Wenn Sie mehr sehen möchten, müssen Sie entweder weitere Tunnel an anderen Ports öffnen oder die anderen Lösungen untersuchen, die Anforderungen für alle Remote-Hosts über einen Proxy tunneln.

Dies ist die 3. Verwendung des -LSchalters von man ssh:

 -L [bind_address:]port:host:hostport
 -L [bind_address:]port:remote_socket
 -L local_socket:host:hostport
 -L local_socket:remote_socket
         Specifies that connections to the given TCP port or Unix socket on the
         local (client) host are to be forwarded to the given host and port, or
         Unix socket, on the remote side.  This works by allocating a socket to
         listen to either a TCP port on the local side, optionally bound to the
         specified bind_address, or to a Unix socket.  Whenever a connection is
         made to the local port or socket, the connection is forwarded over the
         secure channel, and a connection is made to either host port hostport,
         or the Unix socket remote_socket, from the remote machine.

         Port forwardings can also be specified in the configuration file.  Only
         the superuser can forward privileged ports.  IPv6 addresses can be
         specified by enclosing the address in square brackets.

         By default, the local port is bound in accordance with the GatewayPorts
         setting.  However, an explicit bind_address may be used to bind the
         connection to a specific address.  The bind_address of “localhost”
         indicates that the listening port be bound for local use only, while an
         empty address or ‘*’ indicates that the port should be available from
         all interfaces.
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.