Jak SSH do swojego gościa VirtualBox

Jak SSH do swojego gościa VirtualBox
Są chwile, kiedy chcesz mieć zdalny dostęp do maszyny wirtualnej. Może to tylko system operacyjny serwera działający jako maszyna wirtualna, w której testujesz aplikacje przed faktycznie je wdrożeniem.

Zdolność do SSH w systemie operacyjnym może się przydać, gdy nie chcesz używać GUI swojej maszyny wirtualnej. Po prostu rozpocznij maszynę wirtualną w trybie bezgłowym, a SSH w środku i odejście od niego bez otwarcia wielu okien w terminalu.

Dla tych, którzy są nowi w idei SSH, będziemy mieli krótkie wprowadzenie do funkcjonowania SSH przed zanurzeniem się w konfiguracji. Musielibyśmy również omówić ustawienia sieci wirtualnej związane z siecią, aby upewnić się, że masz dostęp do tej maszyny wirtualnej z dowolnego miejsca w sieci LAN.

Jak działa SSH-Keys?

Oto uproszczony model działania SSH. Tworzysz parę klawiszy na lokalnym komputerze. Klucz publiczny i klucz prywatny. Wiadomości szyfrowane za pomocą klucza publicznego można odszyfrować za pomocą klucza prywatnego i odwrotnie. Te klucze są zwykle przechowywane na lokalnym komputerze na ścieżce ~/.ssh/id_rsa(klucz prywatny) i~/.ssh/id_rsa.pem(klucz publiczny).

Następnie przechodzisz do swojego zdalnego serwera, zaloguj się do konsoli jako zwykłego lub root użytkownika, otwórz plik ~/.ssh/autoryzowane_keystego serwera. Tutaj wpisujesz zawartość swojego klucza publicznego, tak jak jest. Po zrobieniu tego możesz SSH jako ten użytkownik na serwerze .Katalog SSH ma autoryzowane_keys z urządzenia lokalnego.

.pem Rozszerzenie oznacza, że ​​ten plik jest kluczem publicznym, który możesz udostępnić każdemu. id_rsa część oznacza tylko, jaki szyfrowanie jest używane (w tym przypadku zdarza się, że jest to RSA). Klucz prywatny może być dalej chroniony przez frazę, którą musisz wprowadzić, za każdym razem, gdy chcesz zalogować się do zdalnego serwera za pomocą tego klucza prywatnego.

Jeśli masz komputer Mac, Linux lub jakikolwiek inny system podobny do UNIX jako komputer lokalny, możesz generować i zarządzać klawiszami za pomocą terminalu, a także ssh na zdalne serwery za pomocą tego samego terminalu. Dla użytkowników systemu Windows sugeruję użycie putty lub git bash, które to ostatnie są moją osobistą preferencją. Polecenia są prawie takie same, gdy masz klienta SSH.

Konfiguracja SSH-Keys

Najpierw upewnij się, że jeśli nie ma już SSH-Keys w katalogu domowym. Sprawdź zawartość katalogu domowego .ssh teczka. W razie wątpliwości cofnij swoją zawartość przed wykonaniem następującego polecenia. Programy takie jak FileZilla używają kluczy SSH cały czas, bez wiedzy użytkownika, więc ten krok był raczej kluczowy.

W Twoim maszyna lokalna, Otwórz terminal i wprowadź polecenie:

$ ssh-keygen

Następnie będzie następujące podpowiedzi z wartościami w nawiasach wskazujących wartości domyślne. Kontynuuj podpowiedzi i nadaj klawiszom bezpieczną frazę.

Sprawdź, czy klawisze są tworzone poprzez sprawdzenie zawartości twojego ~/.ssh teczka.

$ ls -al ~/.ssh

Jeśli zobaczysz pliki pasujące do wartości domyślnych wyświetlanych w ssh-keygen Poniższe, wtedy wszystko działało dobrze.

Teraz otwórz konsolę dla swojego Maszyna wirtualna. Najpierw sprawdź, czy Twój maszyna wirtualna ma uruchomiony serwer SSH, czy nie.

$ Service SSHD Status

Jeśli nie jest zainstalowany, użyj Menedżera pakietów, aby wyszukiwać i zainstalować serwer OpenSsh. Po zakończeniu upewnij się, że zapora maszyny wirtualnej jest otwarta na nr 22. Na przykład, jeśli używasz Ubuntu jako maszyny wirtualnej, domyślna zapora ogniowa UFW powinien być wyłączony, albo powinien zezwolić na połączenia portu, takie jak:

Status $ sudo UFW

Jeśli nie jest otwarte na porcie 22, użyj polecenia obserwuj:

$ sudo ufw pozwól ssh

Następnie otwórz plik ~/.ssh/autoryzowane_keys na maszynie wirtualnej za pomocą ulubionego edytora tekstu. Możesz włączyć schowek host-to-guest lub dwukierunkowy schowek na następny krok.

Wewnątrz tego pliku (na dole pliku, jeśli nie jest pusty) wklej w zawartości klucz publiczny. Ostatnia część, w której mówi twoje imię i lokalny host, w którym generowano klucze, nie jest tak ważna jak reszta ciągu.

(Opcjonalnie) Nie korzystanie z SSH-Keys

Jeśli ufasz swojej sieci lokalnej, możesz użyć mniej bezpiecznej metody korzystania z hasła UNIX, do SSH w maszynie wirtualnej. Otwórz plik /etc/ssh/sshd_config na maszynie wirtualnej i wymień linię:

#PasswordAuthentication nr
Do
HasłoAuthentication Tak

Po tym, jak to się stanie, uruchom ponownie swój serwer SSH.

$ Service Sshd restart

Teraz możesz użyć zwykłego hasła, którego używasz, aby zalogować się do maszyny wirtualnej do SSH.

Twoja wirtualna maszyna i sieć

Dla SSH w maszynie wirtualnej, zarówno lokalny komputer (ten z kluczem prywatnym), jak i VM powinny znajdować się w tej samej sieci. Więc możesz dotrzeć do adresu IP tej maszyny wirtualnej. Pokażemy Ci, jak dodać maszynę wirtualną do swojego LAN.

Rozważmy przykład typowej konfiguracji routera domowego. Twój komputer wraz z innymi urządzeniami jest podłączony do routera domowego. Ten router działa również jako serwer DHCP, co oznacza, że ​​przypisuje każde podłączone do niego urządzenie, unikalny prywatny adres IP. Twój pulpit otrzymuje adres IP, więc telefon i laptop. Tylko urządzenia podłączone do tego routera mogą rozmawiać ze sobą za pomocą swoich adresów IP.

Włącz tryb sieciowy w ustawieniach maszyny wirtualnej i maszyny wirtualnej pojawi się jako podłączony do routera domowego (lub podobnego serwera DHCP) z prywatnym adresem IP. Jeśli drugie urządzenie jest podłączone do tej samej sieci (powiedzmy, do tego samego routera domowego), może być użyte do SSH do maszyny wirtualnej.

Otwórz Menedżer VirtualBox, wybierz docelową maszynę wirtualną, otwórz Ustawienia → Sieć i wybierz sieć mostów zamiast NAT.

Jak widać, mój host jest podłączony za pomocą Wireless, aby połączenie było również udostępniane przez maszynę wirtualną, jeśli używasz Ethernet, pojawiłaby się inna nazwa interfejsu, co jest w porządku.

Teraz moja maszyna wirtualna, która się nazywa Ubuntuvm, pojawia się na mojej konfiguracji LAN w następujący sposób. Sprawdź ustawienia routera, aby sprawdzić, czy to samo działa dla Ciebie.

Gdy znasz adres IP swojej maszyny wirtualnej, możesz w nim ssh, uruchamiając polecenie:

$ ssh @IP.adres.z.twój.Vm

Jeśli w powyższych krokach umieściłeś hasło do swojego klucza prywatnego.

Otóż ​​to! Teraz możesz uruchomić maszyny wirtualne w trybie bezgłowym i po prostu w nich z dowolnego miejsca w domu. Mam nadzieję, że uznałeś ten samouczek interesujący, daj nam znać, czy jest jakikolwiek temat.