accedere alla pagina web tramite ssh


14

Devo accedere a IEEE xplore, ma non ho il diritto di scaricare fuori dall'istituto.

Posso accedere al server dell'istituto tramite ssh,

così Come posso accedere a IEEE xplore tramite il server dell'istituto tramite ssh?

Ho cercato soluzioni, qualcuno ha risposto:

ssh -L 8080:localhost:80 user@remoteserver

e poi dice:

Ora, punta il tuo browser locale su localhost: 8080. Dovrebbe essere inoltrato a localhost: 80 nel server remoto. ### Ma non so ancora come configurare il mio laptop, sto usando Chrome.

Apprezzo molto il tuo aiuto!


Risposte:


23

Primo metodo:

Avvia un tunnel SSH

Per avviare il tunnel SSH, è sufficiente aprire il terminale e connettersi al server remoto tramite SSH con i seguenti flag:

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

Naviga sul Web con il tuo tunnel SSH (Chrome)

Ora, iniziamo a navigare sul Web utilizzando il nostro nuovo tunnel SSH.

  • Apri Google Chrome
  • Seleziona l'icona della chiave inglese in alto a destra
  • Seleziona "Impostazioni"
  • Seleziona "Mostra impostazioni avanzate ..."
  • Seleziona "Modifica impostazioni proxy ..."
  • Seleziona "Proxy SOCKS"
  • Inserisci '127.0.0.1 ′
  • Inserisci la porta '8080 ′
  • Salva le modifiche selezionando "OK"

Cerca su Google "il mio IP" e dai un'occhiata al tuo indirizzo IP adesso.

Questo avvierà il nostro tunnel SSH sulla porta 8080 e instraderà tutto il traffico (in modo sicuro) attraverso il server su example.com.

Uscita dal tunnel SSH

Per uscire dal tunnel SSH, è sufficiente disabilitare il proxy SOCKS nel browser.

fonte

Secondo metodo:

Puoi farlo facilmente usando Shellinabox

Assicurati di aver controllato il Repository Universo

Installare

 $ sudo apt-get install openssl shellinabox

Configurazione di Shellinabox

Per impostazione predefinita, shellinaboxd è in ascolto sulla porta TCP 4200 su localhost. Durante l'installazione un nuovo certificato SSL autofirmato creato automaticamente in "/ var / lib / shellinabox" per utilizzare il protocollo HTTPS.

$ 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: sostituire l'ip 172.16.25.125 con il tuo

Avvio di Shellinabox

Una volta terminata la configurazione, puoi avviare il servizio

$ sudo service shellinaboxd start

Verifica Shellinabox

Ora controlliamo se Shellinabox è in esecuzione sulla porta 4200 usando il comando "netstat".

$ 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

Ora apri il tuo browser web e vai a 'https: // "Il tuo indirizzo IP: 6175"'. Dovresti essere in grado di vedere un terminale SSH basato sul web. Accedi usando il tuo nome utente e password e dovresti presentarti con il prompt della shell.

inserisci qui la descrizione dell'immagine

fonte


@maythus, grazie mille, le tue risposte sono fantastiche.
Risolvo il

@ ulyssis2 Sei il benvenuto amico
Maythux,

@kimerseen Sei il benvenuto amico
Maythux,

@Maythux puoi aiutarmi con la mia domanda askubuntu.com/questions/987626/shell-in-a-box-session-closed
MiHawk

2

L'esempio che hai fornito è corretto, ma in qualche modo fuorviante. Questo dovrebbe funzionare:

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

Ad esempio, considera una casella remota che esegue ssh che può accedere a questa pagina Web, che voglio vedere localmente:

http://192.168.1.2/index.html

Per creare un tunnel sulla mia casella locale che mi consenta di accedere a quella pagina remota, eseguo localmente:

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

E poi, in un browser web, visito:

http: // localhost: 8080 / index.html

Se è necessario (o si desidera) omettere l'identificatore di porta, sarà necessario aprire il tunnel come root, poiché 80 è una porta "privilegiata" (<1024):

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

Quindi, puoi semplicemente visitare localmente:

http: //localhost/index.html

Non è richiesta altra configurazione.

Per inciso, questo funziona solo per un singolo host che vuoi vedere localmente. Se è necessario visualizzarne altri, è necessario aprire più tunnel su altre porte o esaminare le altre soluzioni che il tunnel richiede per tutti gli host remoti tramite un proxy.

Questo è il terzo utilizzo -Ldell'interruttore da 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.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.