Kontekst
Używam Ubuntu Desktop jako mojej podstawowej maszyny, którą nazywam D. Chcę połączyć się z serwerem S przez ssh, ale zapora mnie blokuje.
Mam dostęp do serwera S, bardzo uciążliwą ścieżką, obejmującą maszynę wirtualną Windows i PuTTY . To sprawia, że praca z tym serwerem jest wyjątkowo denerwująca: zupełnie inne środowisko, kopiowanie / wklejanie nie działa, nie mogę poprawnie korzystać z pulpitu podczas połączenia z nim (Alt-Tab jest uszkodzony przez maszynę wirtualną) itp.
Sprawdziłem, że mogę ssh z serwera S na mój komputer stacjonarny D (odwrotnie niż to, czego potrzebuję).
Czy mogę w jakiś sposób zainicjować „przekierowanie portów” lub podobne z serwera, aby móc ssh na serwer z mojego pulpitu?
ssh
firewall
port-forwarding
Dangonfast
źródło
źródło
D->S
poprzez nadużycieS->D
Odpowiedzi:
Aby skonfigurować tunel SSH ze zdalnego serwera na komputer lokalny, możesz użyć następującego polecenia:
Po skonfigurowaniu tunelu możesz po prostu ssh na zdalnym serwerze za pomocą następującego polecenia:
Pamiętaj, że musisz skonfigurować klucze ssh do automatycznego logowania (bez pytania o hasło). Jeśli chcesz interaktywnie utworzyć tunel SSH, możesz usunąć opcje
-f -N
. Aby uzyskać więcej informacji,man ssh
.źródło
Jeśli korzystasz z nowszej wersji OpenSSH (7.3+), możesz użyć tej,
ProxyJump
która wszystko magicznie łączy:Które w twoim
~/.ssh/config
wyglądzie to:ProxyJump
obsługuje pełną składnię SSH, więc jeśli jesteśjim
włączonywindows_server
i używa portu2222
dla ssh.remote_server
jest na IP192.168.0.110
zwindows_server
czym można napisać:I wciąż po prostu biegnij,
ssh remote_server
aby się tam dostać.Jeśli korzystasz ze starszej wersji SSH, użyj ProxyCommand - pozwala to powiedzieć SSH, aby najpierw uruchomiło polecenie ustanowienia połączenia proxy, przed uruchomieniem rzeczywistego polecenia SSH.
Wykorzystuje to opcję SSH -W , która jest skrótem dla bardziej tajemniczej składni netcat .
Zwróć uwagę, że ponieważ podczas uruchamiania
ssh remote_server
jesteś teraz na komputerzewindows_machine
, musisz upewnić się, że używasz adresu IPremove_server
z pola skoku zamiast adresu IP z komputera - mogą one być takie same.Następnie możesz dodać tę dyrektywę do swojego
~/.ssh/config
pliku:Oznacza to, że jeśli
remote_server
jest to inna maszyna, jak widać,windows_machine
możesz ją ustawić w konfiguracji i nadal używaćssh remote_server
.źródło
Zamiast próbować ominąć rzeczy i stworzyć zawiłą ścieżkę, czy nie możesz po prostu poprosić o zezwolenie SSH z pulpitu na serwer? Jeśli masz taką potrzebę i powinieneś uzyskiwać dostęp do serwera, nie widzę powodu, dla którego miałbyś odmówić.
źródło