
Ich muss auf IEEE xplore zugreifen, bin aber nicht berechtigt, es außerhalb des Instituts herunterzuladen.
Ich kann mich per SSH auf dem Server des Instituts anmelden.
Wie kann ich also über den Institutsserver per SSH auf IEEE xplore zugreifen?
Ich habe nach Lösungen gesucht, einige haben geantwortet:
ssh -L 8080:localhost:80 user@remoteserver
und dann sagt er:
Richten Sie Ihren lokalen Browser nun auf localhost:8080. Er sollte an localhost:80 im Remote-Server weitergeleitet werden.### Aber ich weiß immer noch nicht, wie ich meinen Laptop konfiguriere, ich verwende Chrome.
Ich weiß Ihre Hilfe sehr zu schätzen!
Antwort1
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 über SSH eine Verbindung zu Ihrem Remote-Server her:
ssh -D 8080 -C -N [email protected]
Surfen Sie mit Ihrem SSH-Tunnel im Internet (Chrome)
Beginnen wir nun mit dem Surfen im Internet über unseren neuen SSH-Tunnel.
- Öffnen Sie Google Chrome
- Wählen Sie oben rechts das Schraubenschlüssel-Symbol
- 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, indem Sie „OK“ auswählen.
Suchen Sie bei Google nach „meine IP“ und sehen Sie nach, 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 geleitet.
Verlassen des SSH-Tunnels
Um den SSH-Tunnel zu verlassen, deaktivieren Sie einfach den SOCKS-Proxy in Ihrem Browser.
Zweite Methode:
Mit 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 lauscht shellinaboxd auf TCP-Port 4200 auf dem lokalen Host. Während der Installation wird automatisch ein neues selbstsigniertes SSL-Zertifikat unter „/var/lib/shellinabox“ erstellt, 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 Shellinabox
Überprüfen wir nun mit dem Befehl „netstat“, ob Shellinabox auf Port 4200 läuft.
$ 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://"Ihre-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 sehen.
Antwort2
Das von Ihnen angegebene Beispiel ist korrekt, aber etwas irreführend. Das hier sollte funktionieren:
ssh -L 8080:<remote-web-host-you-want-to-see>:80 remote-user@remote-ssh-server
Stellen Sie sich beispielsweise eine Remote-Box vor, auf der SSH ausgeführt wird und die auf die Webseite zugreifen kann, die ich lokal sehen möchte:
Um auf meiner lokalen Box einen Tunnel zu erstellen, der es mir ermöglicht, zu dieser Remote-Seite zu navigieren, führe ich 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-Spezifizierer weglassen müssen (oder möchten), müssen Sie den Tunnel als Root öffnen, da 80 ein „privilegierter“ Port (<1024) ist:
sudo ssh -L 80:<remote-web-host-you-want-to-see>:80 remote-user@remote-ssh-server
Dann besuchen Sie einfach vor Ort:
Es ist keine weitere Konfiguration erforderlich.
Das funktioniert übrigens nur für eineeinzelHost, den Sie lokal sehen möchten. Wenn Sie mehr sehen müssen, müssen Sie entweder weitere Tunnel auf anderen Ports öffnen oder andere Lösungen prüfen, die Anfragen für alle Remote-Hosts über einen Proxy tunneln.
Dies ist die dritte Verwendung des -L
Schalters 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.