Jak mogę ssh do gościa Ubuntu - działającego na hoście Win10 - ze zdalnego serwera Linux?

10

Krótka wersja

Jeśli korzystam z maszyny wirtualnej VirtualBox gościa Ubuntu z hosta Windows 10, jakie kroki muszę wykonać sshze zdalnego serwera linux na maszynę wirtualną gościa Ubuntu?


_______________________
[                     ]
[ Windows 10          ]
[ ___________________ ]            ____________________
[ [                  ]]            [                   ]
[ [ Ubuntu VM (guest) <----HOW?---- SUSE remote server ]
[ [__________________]]            [___________________]
[_____________________]

Długa wersja

Jestem zdezorientowany, ponieważ AFAIK, jeśli nie korzystałem z gościnnej maszyny Wirtualnej Ubuntu, a zamiast tego używałem prawdziwej maszyny Ubuntu, mogłem po prostu cat /etc/hostsznaleźć adres IP lokalnego, a następnie zdalnie:

user@remote --ssh--> user@<local IP>

Już skonfigurowałem klucze ssh, aby móc ssh z gościa Ubuntu na zdalny serwer SUSE (tzn. Gość ~/.ssh/id_rsa.pubjest już zapisany na pilocie ~/.ssh/authorized_keys). Czyli już mogę:

ssh -Y user@remote

Bez trudności nie mogę tego zrobić na odwrót, ponieważ nie mam pojęcia, jaki jest adres IP mojego gościa. Próbowałem już sshz adresami IP w „Informacjach o połączeniu” z GUI Ubuntu.

Dla jasności:

  • Gość VM to Ubuntu 12.04 LTS (64-bit)

  • Ustawienia VirtualBox głównie: domyślne

  • Włącz kartę sieciową: NAT (kabel podłączony, bez przekierowywania portów)

Nie skonfigurowałem serwera ssh, ale nie jestem pewien, czy jest to konieczne (?), Tak rozumiem.

Biorąc pod uwagę, że uruchamiam maszynę wirtualną VirtualBox gościa Ubuntu z hosta systemu Windows 10, jakie kroki muszę wykonać sshze zdalnego serwera Linux na maszynę wirtualną gościa Ubuntu?

hello_there_andy
źródło

Odpowiedzi:

14

Jest to zwykle nazywane sytuacją „podwójnego NAT”, gdy jesteś za routerem. Musisz przekierować z routera granicznego do systemu Windows, a następnie przesłać w VBox do maszyny wirtualnej. Być może będziesz musiał przekierować port 22 z faktycznego połączenia sieciowego do adaptera NAT VBox, ale nie jestem tak jasny w przypadku systemu Windows.

Ostatecznie jednak musisz zrobić co najwyżej trzy rzeczy. Wszystkie są w systemie Windows lub nie w systemie Ubuntu Linux, więc większość twoich odpowiedzi będzie na Super User lub w innym miejscu.

  1. (Jeśli znajdujesz się za routerem w sieci, w którym jest włączony Win10) Skonfiguruj przekierowywanie portów na routerze w sieci, aby przekierować port 22 do systemu Windows 10.

  2. Ustaw Zaporę systemu Windows, aby zezwalać na połączenia przychodzące na porcie 22. Może być również konieczne określenie, że port 22 ma być przekazywany z karty sieci przychodzącej do sieci NAT w ustawieniach sieci maszyny wirtualnej.

  3. Ustaw regułę przekazywania NAT w sieci NAT w VirtualBox, aby przekierować Port 22 na hoście do Portu 22 na maszynie wirtualnej .

Nieco lepszym podejściem, które omija etapy 2 i 3 tutaj, jest użycie trybu pomostowego w ustawieniach sieci maszyn wirtualnych; spowoduje to uzyskanie adresu IP z tej samej sieci, do której podłączony jest system Windows 10, a następnie można przekierować port przekierowania 22 na routerze brzegowym (krok # 1) na adres IP przypisany przez sieć do samej maszyny wirtualnej. Jest to trochę mniej bolesne niż konieczność wykonywania wielu przeskoków i konfiguracji, aby uruchomić Port 22.

UWAGA: Niektórzy usługodawcy internetowi filtrują port 22, aby ruch w porcie 22 nie docierał do systemu; w takim przypadku może być konieczne skonfigurowanie wyższego portu niż Port 22 (taki jak 2022 lub inny niestandardowy port> 1024).


Jeśli chodzi o znalezienie adresu IP gościa, informacje te znajdą się na wyjściu gościa Linux ifconfig -alub ip -4 addr listw nim. To najłatwiejsza część z tego wszystkiego, ponieważ będzie to ta sama, Bridged lub NAT.

Thomas Ward
źródło
Zbadam
1
@hello_there_andy Robię dużo wirtualizacji na moim laptopie, albo za pośrednictwem kontenerów LXC / LXD opartych na Linuksie w konfiguracji NAT, lub poprzez VMware, z podobnym złem do NAT (w zasadzie jestem przyzwyczajony do tego zestawu problemów heh). Proces ten jest podobny w systemach Linux i Windows, ale zupełnie inny pod względem kroków, chociaż w moich przypadkach moje maszyny wirtualne nigdy nie potrzebują na zewnątrz -> w; dla tych maszyn wirtualnych umieszczam je na dedykowanym hiperwizorze ESXi, który jest maszyną przeznaczoną do uruchamiania maszyn wirtualnych i łączę je bezpośrednio z istniejącą konfiguracją Ethernet (nie ma tam NAT heh). Ale to oczywiście nietypowa konfiguracja.
Thomas Ward
1
@hello_there_andy tylko upewnij się, że gość go openssh-serverzainstalował - abyś mógł zaakceptować SSH. Poza tym reszta to elementy sieciowe / zapora ogniowa / konfiguracja systemu Windows. (W związku z tym superużytkownik i nie pytaj Ubuntu)
Thomas Ward
3

Musisz ustawić port forwardingwWindows 10 VM player

Musisz ustawić zewnętrzny port na komputerze z systemem Windows 10, który zostanie przekierowany do service portna virtual machinew NAT network.

Ten link wyjaśnia, jak to zrobić

Yaron
źródło
1
Chociaż teoretycznie może to odpowiedzieć na pytanie, odpowiedzi tylko na link są zasadniczo niezadowolone. Zalecane jest dołączenie odpowiednich informacji z powiązanych postów, na wypadek, gdyby takie posty zniknęły w przyszłości.
Thomas Ward,
Dziękujemy za komentarz i za podanie szczegółów w odpowiedzi.
Yaron