Utilizzare il browser reale anziché w3m su connessioni SSH


10

Sto usando Ubuntu come sistema operativo desktop e server. Quando accedo al server tramite sshon terminale devo visualizzare una pagina web (localhost) sul server uso w3m ( w3m localhost).

Sfortunatamente w3m non è così facile da gestire, poiché la pagina ha alcuni grandi menu e usa jQuery. Quindi mi chiedo se è possibile utilizzare un browser sul mio desktop per connettersi al server tramite SSH con un browser reale (Firefox o Chrome).

Fondamentalmente sarebbe necessario connettersi con un browser sul mio desktop al server tramite SSH con usernamee password, e aprire su quel server localhost.

È possibile per impostazione predefinita o ci sono componenti aggiuntivi per Firefox / Chrome? Preferirei Firefox.


Non una risposta alla tua domanda, ma ... che ne dici di usare l'inoltro X?
Javier Rivera,

1
Perché non è possibile connettersi al server remoto tramite http? Hai specificamente bisogno che la richiesta provenga da localhost a scopo di test? L'inoltro di @Javier X, specialmente per Firefox, è pesante per la larghezza di banda e non lo consiglierei per le connessioni non locali.
Carsten Thiel,

È da un lato a scopo di test, quindi deve essere localhost. D'altra parte il server remoto non è nella rete locale e non può essere raggiunto tramite il normale http.
Pit

Sì, la larghezza di banda è una preoccupazione quando si inoltra X.
Javier Rivera il

Risposte:


14

Usa il port forwarding ssh.

Connettiti al server remoto con qualcosa del genere:

ssh -L 8080:localhost:80 user@remoteserver

Ora, punta il tuo browser locale su localhost: 8080. Dovrebbe essere inoltrato a localhost: 80 nel server remoto.


Ho appena testato questo su un server nella mia rete locale e sembra funzionare. Lo proverò più tardi con il server remoto.
Pit

6

PARTE 1

Crea un proxy per calze con ssh!

ssh -D 9999 user@remoteserver

Ora apri le tue preferenze di Firefox, vai su Avanzate> Rete> Impostazioni. Seleziona Configurazione proxy manuale. Inserisci localhost per l'host SOCKS, inserisci 9999 per la porta. Provalo andando su http://whatismyip.org o su un sito simile.

Poiché hai detto che stai tentando di accedere a una pagina Web su localhost (relativamente al tuo server), potresti non voler escludere localhost e 127.0.0.1 dall'uso del proxy. Certo, potresti semplicemente usare l'ip locale del server ..

Se non ti piace la mia spiegazione, questi collegamenti hanno fatto jogging sulla mia memoria mentre scrivevo questo:

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

PARTE 2

L'errore che hai, non channel 3: open failed: connect failed: Connection refusedha assolutamente nulla a che fare con ssh. Apparentemente stai provando ad accedere ad alcune cose misteriose. Questo ha una sfida in più, perché mysql blocca l'accesso dai tunnel ssh per impostazione predefinita. Non faccio mysql, quindi non so di cosa sto parlando per il resto. Sto solo citando i bit rilevanti del link alla fine, che dovresti leggere.

Apri /etc/mysql/my.cnf e cerca la sezione [mysqld]. Se vedi una riga "skip-networking", commentala. Aggiungi "bind-address = 127.0.0.1" (senza virgolette, ovviamente).

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

Parte 3

La soluzione di Javier ssh -L 8080:localhost:80 user@remoteserverè fantastica se hai solo bisogno di accedere a una posizione. Ti consente di accedere a localhost e lascia solo il resto di Internet. La mia soluzione con ssh -D va oltre e in realtà indirizzerà tutte le tue richieste http al server remoto. Ovviamente potresti non volerlo davvero. Ma l'ho trovato utile quando volevo l'accesso http a tutte le macchine su una rete, o quando non volevo che le mie richieste http passassero attraverso la rete in cui sono cablato (ovvero, l'online banking su starbucks. Tutto il mio traffico va attraverso il tunnel SSH verso la mia casa Internet.)


Su richiesta 'localhost' in Firefox ottengo un errore nel terminale in cui ho aperto il collegamento ssh: channel 3: open failed: connect failed: Connection refused. Non ho avuto il tempo di cercarlo, ma forse sai cosa potrebbe essere?
Pit

Ho appena visto nella pagina man di ssh che devi essere root per usare l' -Dopzione. Questo è il motivo per cui non ha funzionato e non funzionerà, poiché non riesco a collegarmi come root al server (per motivi di sicurezza).
Pit

Che cosa? L'ho usato tutto il tempo come un normale utente su entrambe le estremità del tunnel. Oh, capisco. È necessario essere root se si tenta di utilizzare una porta come 80, o 21 o una delle altre porte riservate IANA. Qualunque cosa oltre 1024 dovrebbe andare bene. Penso che l'errore abbia a che fare con il tuo ssh.conf che blocca in avanti. Adesso sto cercando su Google.
djeikyb,

Ho cercato su Google il tuo errore e ho trovato questo articolo in cui si dice che mysql ha una "funzione" di sicurezza che blocca l'accesso dalla porta in avanti per impostazione predefinita. debuntu.org/…
djeikyb il

2

È possibile utilizzare l'inoltro X tramite SSH in modo che tutte le applicazioni X eseguite sul server vengano visualizzate sul personal computer.

  1. Quando ci si connette con SSH al server, aggiungere il flag -X. Ad esempio ssh -X myserver,.
  2. Installa un browser GUI sul server ed eseguilo semplicemente. L'output verrà visualizzato sul personal computer tramite l'inoltro X e la connessione SSH protetta.

Come Carsten ha menzionato nel suo commento alla mia domanda e riguardo al fatto che il server remoto non è nella mia rete locale, che dire della larghezza di banda?
Pit

Dovresti definire i requisiti di larghezza di banda. In caso contrario, puoi provarlo e vedere come funziona.
user4124,
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.