Używaj prawdziwej przeglądarki zamiast w3m na połączeniach SSH


10

Używam Ubuntu jako systemu operacyjnego dla komputerów stacjonarnych i serwerów. Kiedy jestem zalogowany do serwera poprzez sshna terminali muszę zobaczyć na stronie internetowej (localhost) na korzystanie z serwera I w3m ( w3m localhost).

Niestety w3m nie jest tak łatwy w obsłudze, ponieważ strona ma kilka dużych menu i używa jQuery. Zastanawiam się więc, czy można użyć przeglądarki na moim pulpicie, aby połączyć się z serwerem za pośrednictwem SSH z prawdziwą przeglądarką (Firefox lub Chrome).

Zasadniczo wymagałoby to połączenia przeglądarki na moim pulpicie z serwerem za pośrednictwem SSH przy pomocy usernamei password, i otwarcia na tym serwerze localhost.

Czy jest to możliwe domyślnie, czy są jakieś dodatki do przeglądarki Firefox / Chrome? Wolałbym Firefox.


Nie jest to odpowiedź na twoje pytanie, ale ... co powiesz na korzystanie z przekazywania X?
Javier Rivera

1
Dlaczego nie możesz połączyć się ze zdalnym serwerem przez http? Czy potrzebujesz konkretnie prośby o pochodzenie z localhost do celów testowych? Przekazywanie @Javier X, szczególnie dla firefox, jest bardzo obciążające i nie poleciłbym tego dla połączeń nielokalnych.
Carsten Thiel,

Jest z jednej strony do celów testowych, więc musi być hostem lokalnym. Z drugiej strony serwer zdalny nie znajduje się w sieci lokalnej i nie można do niego dotrzeć za pośrednictwem zwykłego protokołu http.
Pit

Tak, przepustowość jest problemem podczas przesyłania X.
Javier Rivera

Odpowiedzi:


14

Użyj przekierowania portów ssh.

Połącz się ze zdalnym serwerem za pomocą czegoś takiego:

ssh -L 8080:localhost:80 user@remoteserver

Teraz wskaż lokalną przeglądarkę na localhost: 8080. Powinien zostać przesłany do localhost: 80 na zdalnym serwerze.


Właśnie przetestowałem to na serwerze w mojej sieci lokalnej i wydaje się, że działa. Przetestuję to później na zdalnym serwerze.
Pit

6

CZĘŚĆ 1

Zrób socks proxy z ssh!

ssh -D 9999 user@remoteserver

Teraz otwórz preferencje Firefoksa, przejdź do Zaawansowane> Sieć> Ustawienia. Wybierz Ręczna konfiguracja proxy. Umieść localhost dla SOCKS Host, wstaw 9999 dla portu. Przetestuj to, przechodząc na stronę http://whatismyip.org lub podobną stronę.

Ponieważ powiedziałeś, że próbujesz uzyskać dostęp do strony internetowej na localhost (względem twojego serwera), możesz nie chcieć wykluczać localhost i 127.0.0.1 z używania proxy. Oczywiście możesz po prostu użyć lokalnego adresu IP serwera.

Jeśli nie podoba mi się moje wyjaśnienie, te linki pobudziły moją pamięć podczas pisania:

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

http://embraceubuntu.com/2006/12/08/ssh-tunnel-socks-proxy-forwarding-secure-br Przeglądaj/

https://calomel.org/firefox_ssh_proxy.html

CZĘŚĆ 2

Wystąpił błąd, nie channel 3: open failed: connect failed: Connection refusedma absolutnie nic wspólnego z ssh. Najwyraźniej próbujesz uzyskać dostęp do jakiegoś mysql. Jest to dodatkowe wyzwanie, ponieważ mysql domyślnie blokuje dostęp z tuneli ssh. Nie robię mysql, więc nie wiem o czym mówię przez resztę tego. Na końcu cytuję odpowiednie fragmenty linku, które powinieneś przeczytać.

Otwórz /etc/mysql/my.cnf i poszukaj sekcji [mysqld]. Jeśli zobaczysz wiersz „pomiń połączenie sieciowe”, skomentuj go. Dodaj „bind-address = 127.0.0.1” (oczywiście bez cudzysłowów).

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

Część 3

Rozwiązanie Javiera ssh -L 8080:localhost:80 user@remoteserverjest fantastyczne, jeśli potrzebujesz tylko dostępu do jednej lokalizacji. Umożliwia dostęp do localhost i pozostawia resztę Internetu w spokoju. Moje rozwiązanie z ssh -D idzie dalej i faktycznie przekieruje wszystkie twoje żądania http do zdalnego serwera. Oczywiście możesz tego nie chcieć. Ale przydało mi się, gdy chciałem dostępu http do wszystkich maszyn w sieci lub gdy nie chciałem, aby moje żądania http przechodziły przez sieć, do której jestem podłączony (tj. Bankowość internetowa na starbucks. Cały mój ruch idzie przez tunel ssh do mojego domowego Internetu).


Na zainteresowanie „localhost” w FireFox pojawia się błąd w terminalu, gdzie otwarto połączenie ssh: channel 3: open failed: connect failed: Connection refused. Nie miałem czasu, żeby to sprawdzić, ale może wiesz, co to może być?
Pit

Właśnie zobaczyłem na stronie podręcznika ssh, że musisz być rootem, aby skorzystać z tej -Dopcji. To jest powód, dla którego nie zadziałało i nie będzie działać, ponieważ nie mogę połączyć się z serwerem jako root (ze względów bezpieczeństwa).
Pit

Co? Używałem tego cały czas jako normalny użytkownik na obu końcach tunelu. Rozumiem. Musisz być rootem, jeśli próbujesz użyć portu takiego jak 80 lub 21 lub dowolnego innego zarezerwowanego portu IANA. Wszystko powyżej 1024 powinno być w porządku. Myślę, że błąd ma związek z blokowaniem ssh.conf do przodu. Teraz przeglądam te linie.
djeikyb

Przejrzałem błąd i wymyśliłem ten artykuł, który mówi, że mysql ma „funkcję” bezpieczeństwa, która domyślnie blokuje dostęp z portu do przodu. debuntu.org/…
djeikyb

2

Możesz używać przekazywania X przez SSH, aby wszystkie aplikacje X uruchomione na serwerze pojawiały się na twoim komputerze osobistym.

  1. Podczas łączenia się z serwerem SSH do serwera dodaj flagę -X. Na przykład ssh -X myserver.
  2. Zainstaluj przeglądarkę GUI na serwerze i po prostu uruchom ją. Dane wyjściowe pojawią się na twoim komputerze osobistym poprzez X przekazywanie i bezpieczne połączenie SSH.

Jak Carsten wspomniał w swoim komentarzu do mojego pytania i że zdalny serwer nie znajduje się w mojej sieci lokalnej, co z przepustowością?
Pit

Musisz określić swoje wymagania dotyczące przepustowości. W przeciwnym razie możesz spróbować i zobaczyć, jak to działa.
user4124
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.