Jak połączyć się przez SSH z gościem VirtualBox?

How Ssh Into Your Virtualbox Guest



Czasami chcesz mieć zdalny dostęp do swojej maszyny wirtualnej. Być może jest to po prostu serwerowy system operacyjny działający jako maszyna wirtualna, w którym testujesz swoje aplikacje przed ich faktycznym wdrożeniem.

Możliwość SSH w systemie gościa może się przydać, gdy nie chcesz korzystać z GUI swojej maszyny wirtualnej. Po prostu uruchom maszynę wirtualną w trybie bezgłowym i SSH wchodząc i wychodząc bez otwierania wielu okien w terminalu.







Dla tych, którzy nie znają idei SSH, będziemy mieli krótkie wprowadzenie do działania SSH, zanim zagłębimy się w konfigurację. Musielibyśmy również omówić ustawienia Twojej maszyny wirtualnej związane z siecią, aby upewnić się, że masz dostęp do tej maszyny wirtualnej z dowolnego miejsca w sieci LAN.



Oto uproszczony model działania SSH. Tworzysz parę kluczy na komputerze lokalnym. Klucz publiczny i klucz prywatny. Wiadomości zaszyfrowane za pomocą klucza publicznego można odszyfrować za pomocą klucza prywatnego i odwrotnie. Klucze te są zwykle przechowywane na komputerze lokalnym pod ścieżką |_+_|(klucz prywatny) i|_+_|(klucz publiczny).



Następnie przechodzisz do zdalnego serwera, logujesz się do konsoli jako zwykły użytkownik lub root, otwierasz plik |_+_|tego serwera. Tutaj wpisujesz zawartość swojego klucza publicznego bez zmian. Gdy to zrobisz, możesz ssh jako ten użytkownik na serwerze, którego katalog .ssh ma autoryzowane_klucze, z twojego urządzenia lokalnego.





ten .NS rozszerzenie oznacza, że ​​ten plik jest kluczem publicznym, który możesz udostępnić każdemu. ten id_rsa część po prostu wskazuje, jaki szyfr szyfrowania jest używany (w tym przypadku jest to RSA). Klucz prywatny może być dodatkowo chroniony hasłem, które należy wprowadzić za każdym razem, gdy chcesz zalogować się do zdalnego serwera przy użyciu tego klucza prywatnego.

Jeśli masz komputer Mac, Linux lub inny system podobny do systemu UNIX jako komputer lokalny, możesz generować klucze i zarządzać nimi za pomocą terminala, a także możesz SSH do zdalnych serwerów za pomocą tego samego terminala. Dla użytkowników Windows sugeruję użycie Kit lub Git Bash to ostatnie jest moim osobistym upodobaniem. Polecenia są prawie takie same, gdy masz klienta SSH.



Konfiguracja kluczy SSH

Najpierw upewnij się, czy w twoim katalogu domowym nie ma już kluczy ssh. Sprawdź zawartość katalogu domowego .ssh teczka. W razie wątpliwości wykonaj kopię zapasową jego zawartości przed wykonaniem następującego polecenia. Programy takie jak Filezilla cały czas używają kluczy SSH, bez wiedzy użytkownika, więc ten krok jest raczej kluczowy.

W Twoim maszyna lokalna , otwórz terminal i wpisz polecenie:

$ssh-keygen

Następnie pojawią się następujące monity z wartościami w nawiasach wskazującymi wartości domyślne. Postępuj zgodnie z monitami i nadaj swoim kluczom bezpieczne hasło.

Sprawdź, czy klucze zostały utworzone, sprawdzając zawartość Twojego ~/.ssh teczka.

$ls -do~/.ssh

Jeśli widzisz pliki pasujące do domyślnych wartości wyświetlanych w ssh-keygen natychmiast wszystko działało dobrze.

Teraz otwórz konsolę na swoim Maszyna wirtualna . Najpierw sprawdź, czy Twoja maszyna wirtualna ma uruchomiony serwer SSH, czy nie.

$stan sshd usługi

Jeśli nie jest zainstalowany, użyj menedżera pakietów, aby wyszukać i zainstalować serwer OpenSSH. Gdy to zrobisz, upewnij się, że zapora maszyny wirtualnej jest otwarta na porcie numer 22. Na przykład, jeśli używasz Ubuntu jako maszyny wirtualnej, domyślna zapora ufw powinien być wyłączony lub powinien zezwalać na połączenia na porcie 22 w następujący sposób:

$sudostatus ufw

Jeśli nie jest otwarty na porcie 22, użyj następującego polecenia:

$sudoufw zezwólcisza

Następnie otwórz plik ~/.ssh/authorized_keys na swojej maszynie wirtualnej za pomocą ulubionego edytora tekstu. W następnym kroku możesz włączyć funkcję host-gość lub dwukierunkowy schowek.

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

(Opcjonalnie) Nie używam klawiszy SSH

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

#Password Brak uwierzytelniania

Do

Uwierzytelnianie hasłemtak

Gdy to nastąpi, uruchom ponownie serwer SSH.

$restart usługi sshd

Teraz możesz użyć zwykłego hasła, którego używasz do logowania się do maszyny wirtualnej, aby również do niej ssh.

Twoja maszyna wirtualna i sieć

Aby ssh do maszyny wirtualnej, zarówno komputer lokalny (ten z kluczem prywatnym), jak i maszyna wirtualna powinny znajdować się w tej samej sieci. Możesz więc dotrzeć do adresu IP tej maszyny wirtualnej. Pokażemy Ci, jak dodać maszynę wirtualną do sieci LAN.

Rozważmy przykład typowej konfiguracji routera domowego. Twój komputer wraz z innymi urządzeniami jest połączony z routerem domowym. Ten router działa również jako serwer DHCP, co oznacza, że ​​przypisuje każdemu podłączonemu do niego urządzeniu unikalny prywatny adres IP. Twój komputer stacjonarny otrzymuje adres IP, podobnie jak telefon i laptop. Tylko urządzenia podłączone do tego routera mogą komunikować się ze sobą za pośrednictwem swoich adresów IP.

Włącz tryb sieci pomostowej w ustawieniach maszyny wirtualnej, a maszyna wirtualna pojawi się jako połączona z routerem domowym (lub podobnym serwerem 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 zostać użyte do ssh do maszyny wirtualnej.

Otwórz VirtualBox Manager, wybierz docelową maszynę wirtualną, otwórz Ustawienia → Sieć i wybierz Bridge Networking zamiast NAT.

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

Teraz moja maszyna wirtualna o nazwie ubuntuvm, pojawia się w 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 połączyć się z nią przez SSH, uruchamiając polecenie:

$cisza <Nazwa Użytkownika> @adres.ip.twojej.VM

Jeśli w powyższych krokach umieściłeś hasło do swojego klucza prywatnego, zostaniesz poproszony o ponowne jego wprowadzenie.

Otóż ​​to! Teraz możesz uruchamiać swoje maszyny wirtualne w trybie bezgłowym i po prostu ssh do nich z dowolnego miejsca w domu. Mam nadzieję, że ten samouczek był dla Ciebie interesujący, daj nam znać, jeśli jest jakiś temat, który chciałbyś, abyśmy omówili.