SSH w VirtualBox Guest: odmowa połączenia


21

Ustawiać

  • 64-bitowy system operacyjny Windows 7 z systemem VirtualBox 4.2 i systemem operacyjnym gościa Ubuntu 12.04.
  • Serwer OpenSSH jest zainstalowany i uruchomiony ( ssh -v localhost łączy się lokalnie na maszynie gościa).
  • Może SSH do zewnętrznych serwerów (brak wychodzącej reguły blokowania zapory systemu Windows przez port 22)
  • Może pingować adres IP gościa (192.168.56.101)

Problem

Używając PuTTY do SSH do adresu IP systemu-gościa (192.168.56.101), PuTTY zwraca prawie natychmiast

Błąd sieci: połączenie odrzucone

Jak mogę zdiagnozować i rozwiązać ten problem?

Odpowiedzi:


10

Czy jesteś pewien, że adres IP dotyczy systemu-gościa? Miałem ten sam problem i okazało się, że adres IP, którego używałem przez cały czas, 192.168.56.101 był w rzeczywistości IP interfejsu Windows, a IP systemu operacyjnego hosta 192.168.56.103.

Możesz to sprawdzić wykonując ipconfig / ifconfig na obu.

UWAGA: Ustawiłem również statyczny adres IP, który okazuje się, że wcale go nie potrzebowałem. W przypadku, gdy spróbujesz od początku, ten samouczek jest lepszy.


6
+1, domyślnie VirtualBox tworzy gościa, którego wirtualna karta sieciowa jest NAT'owana przez sam VirtualBox. Dlatego taki gość będzie mógł SSH na zewnątrz , i byłby w stanie SSH sama , ale nie będzie w stanie odbierać połączeń SSH, dopóki przepisy Port Forwarding powstały w VirtualBox.
Gord Thompson,

+1 Po 1h Google-mess, w końcu! Myślałem, że .101 był gościem, a nie gospodarzem!
Afr

6

Żadne z pozostałych rozwiązań nie jest dobre, ponieważ:

  1. Nie ma sensu ssh do twojego gościa przez most, jeśli gość straci dostęp do Internetu
  2. Wszystkie pozostałe powyższe rozwiązania nakazują zbudowanie rakiety przechodzącej przez jezdnię.

Scenariusz

  • Host Ubuntu Desktop 16.04
  • Guest Ubuntu Server 16.04 (działający na wirtualnym pudełku 5)

Problem

Odmowa połączenia SSH

Rozwiązanie

  1. Wyłącz system Ubuntu gościa
  2. W Virtualbox przejdź do Ustawienia> sieć> Adapter1> Zaawansowane> Przekazywanie portów
  3. Nazwa = SSH Hostport = 2022 (lub dowolny port oprócz 22) Guestport (22)
  4. Uruchom ponownie gościa
  5. Na swoim serwerze otwórz Putty lub cokolwiek, czego używasz do SSH
  6. ssh użytkownik@127.0.0.1 -p2022 (lub dowolny port wymieniony jako hostport)
  7. Baw się dobrze

mam z tym problem: W ustawieniach Virtualbox> sieć> Adapter1> Zaawansowane> Przekazywanie portów jest szare, nie można go kliknąć. imgur.com/seT3p02
SL5net

@ SL5net wyłącz VM
Alon Gouldman

2

Poniższe działa dla mnie:

Przed:

vboxnet0: 192.168.56.1
eth1:     192.168.56.1

Po:

vboxnet0: 192.168.56.1
eth1:     192.168.56.101

Zasadniczo zmieniłem część pliku {/ etc / network / interfaces} w następujący sposób:

Przed:

auto eth1
iface eth1 inet static
address 192.168.56.1
netmask 255.255.255.0 

Po:

auto eth1
iface eth1 inet static
address 192.168.56.101
netmask 255.255.255.0 

Pracuje: ssh username@192.168.56.101


Nie wiem dlaczego, to zadziałało dla mnie. Dzięki @Mause
murarisumit

2

Secure Shell (SSH) to protokół do logowania się i wykonywania poleceń na zdalnych komputerach. Zapewnia bezpieczną szyfrowaną komunikację. Jeśli planujesz zdalny dostęp do urządzenia za pośrednictwem SSH za pośrednictwem zapory ogniowej, włącz tę opcję. Aby ta opcja była przydatna, musisz zainstalować pakiet openssh-server.

Oto informacja, że ​​pakiet openssh-servermusi zostać zainstalowany. Po zrobieniu tego na gościu i ponownym uruchomieniu VM możesz użyć ssh.


Nie uruchomiłem ponownie mojego Ubuntu 16.04 i nadal działało. Dzięki :)
Oren Milman,

1

Powinieneś sprawdzić, czy zapora systemu-gościa nie blokuje połączeń przychodzących na porcie 22.


1
Zapora systemu gościa jest wyłączona. To jest ustawienie domyślne i sprawdziłem, czy jest wyłączone sudo ufw status.
Eric J.

1

Może to problem z kontrolą dostępu. Aby go wyłączyć i umożliwić pełny dostęp, jako root:

xhosts +

Miałem podobny problem z przeglądarką VNC


1
Naprawdę wątpię, że sshd IMHO nie ma nic wspólnego z X - w przeciwieństwie do vnc.
mpy,

1

Problem został rozwiązany przez włączenie serwera DHCP na karcie sieciowej VirtualBox.

VirtualBox (najnowsza wersja, wersja 5) -> Plik -> Preferencje -> Sieć -> Sieci tylko hosta (karta) -> Szczegóły sieci tylko hosta (narzędzie Ikona) -> Serwer DHCP

  1. Zaznacz Włącz serwer
  2. Wpisz adres IP
  3. OK OK
  4. Uruchom ponownie maszynę wirtualną

Moje ustawienia dla kroku 2

  1. Adres serwera: 192.168.56.100
  2. Maska serwera: 255.255.255.0
  3. Dolna granica adresu: 192.168.56.101
  4. Górna granica adresu: 192.168.56.200

1

Hej, właśnie wracam do pierwszej strony, którą znalazłem w mojej mini-sadze dotyczącej rozwiązywania problemów i badań, mając nadzieję, że ten samouczek, który stworzyłem, może uratować kogoś innego.

Przewodnik od początku do końca dotyczący konfigurowania serwera CentOS z Oracle VM:

Część I - Konfiguracja maszyny wirtualnej

  1. Zainstalować Oracle VM VirtualBox a Dodatek tutaj .
  2. Pobierz minimalną instalację CentOS tutaj .
  3. W tym samouczku używam klienta Ubuntu. ISO dla tego można znaleźć tutaj .
  4. Utwórz serwer CentOS i maszyny wirtualne klienta.
  5. Skonfiguruj maszynę Wirtualną CentOS. za. Otwórz Miejsce docelowe instalacji i naciśnij Wstecz. b. Przejdź do Network & Hostname, jeśli chcesz zmienić nazwę hosta, którą polecam. do. Skonfiguruj elementy w obszarze Lokalizacja. Cała reszta jest obsługiwana automatycznie przez VirtualBox. re. Naciśnij rozpocznij instalację. mi. Utwórz konto główne i zwykłe. Upewnij się, że ten drugi ma uprawnienia administratora. fa. Gdy pasek ładowania jest pełny, naciśnij Uruchom ponownie.
  6. Skonfiguruj maszynę wirtualną klienta. za. Zainstaluj dodatki dla gości VirtualBox.

Część II - Konfiguracja sieci wirtualnej

  1. W VirtualBox naciśnij CTRL + W.
  2. Utwórz nową sieć hosta. za. Jeśli pojawi się błąd, jest to prawdopodobnie spowodowane tym, że system operacyjny hosta powoduje problemy z instalacją sterowników przez VirtualBox. Musisz całkowicie odinstalować VirtualBox i ponownie zainstalować najnowszą wersję. Uruchom instalację jako administrator.
  3. Na karcie Adapter wybierz „Konfiguruj kartę ręcznie”
  4. W systemie Windows otwórz wiersz polecenia i wpisz ipconfig.
  5. Przewiń dane wyjściowe, aż znajdziesz nazwę właśnie utworzonej sieci hosta. Użyj tego adresu IPv4 i maski do konfiguracji sieci VirtualBox.
  6. Zamknij Menedżera sieci hosta.
  7. Otwórz ustawienia maszyny wirtualnej klienta. W obszarze Sieć włącz Adapter 2, wybierz Adapter tylko hosta, a następnie nazwa to nazwa nowo utworzonej sieci tylko hosta.
  8. Powtórz ostatni krok dla maszyny wirtualnej serwera CentOS. Ponadto przejdź do przekierowania portów adaptera 1 na karcie Zaawansowane i utwórz nową regułę. Ustaw porty hosta i gościa na 22.
  9. Przed zamknięciem ustawień zaawansowanych zanotuj adres MAC.

Część III - Konfiguracja serwera

  1. Uruchom swoją maszynę Wirtualną CentOS.
  2. Run yum check-update, yum upgradei yum clean all.
  3. Uruchom nmtui.
  4. Naciśnij Enter nad „Edytuj połączenie”.
  5. Powinieneś zobaczyć „enp03s” i „Przewodowe połączenie 1”. za. Jeśli masz dwie opcje połączenia, ale nie masz pewności, która z nich, przejdź do edycji jednej. Jeśli wartość urządzenia jest zgodna z adresem MAC widocznym w części Adapter 1 z Części II, oznacza to, że jest to połączenie NAT, w przeciwnym razie jest to połączenie tylko z hostem.
  6. Edytuj połączenie tylko z hostem: a. Ustaw konfigurację IPv4 na „manual”. B. Pokaż konfigurację IPv4 c. W VirtualBox naciśnij CTRL + W. Obok nazwy sieciowej przeznaczonej tylko dla hosta powinna być widoczna kombinacja adresu IP / maski formularza „[ip] / [maska]”. Na serwerze w konfiguracji IPv4 wpisz to po naciśnięciu <Add…>. re. Zejdź na dół i naciśnij OK.
  7. Upewnij się, że opcja „Automatycznie połącz” jest zaznaczona zarówno dla połączeń typu Host, jak i NAT.
  8. Wyjdź z nmtuii reboot.

Część IV - Konfiguracja i użytkowanie klienta

  1. Uruchom maszynę wirtualną klienta.
  2. (opcjonalnie) Edytuj plik / etc / hosts, aby dołączyć wiersz formularza: [serv_ip_addr] [nazwa hosta] Gdzie serv_ip_addr to adres IP twojego serwera CentOS (drugie wyjście hostname -Iw twoim terminalu CentOS). Pozwoli ci to używać tego, co wybrałeś dla [nazwa hosta] zamiennie z adresem IP twojego serwera. Zazwyczaj ustawiam to na nazwę hosta wybraną w części II.
  3. Jeśli wszystko działało do tego momentu, powinieneś mieć możliwość ssh [user]@[hostname]na swoim serwerze CentOS. Jeśli tak nie jest, to być może trzeba zainstalować openssh-clienti openssh-serverna swoich maszynach.

Część V - Obsługa stron internetowych

  1. Jest to doskonały przewodnik na temat hostowania własnych stron internetowych z konfiguracji opisanej powyżej.

0

Musiałem rozwiązać ten problem, dodając regułę ufw dla drugiego adaptera:

ufw allow in on enp0s8 to 192.168.56.101 port 22 proto tcp

gdzie enp0s8 to nazwa mojego drugiego adaptera (w starych dystrybucjach Ubuntu było to eth1).


-1

W polu Linux (VirtualBox Ubuntu) otwórz Terminal i wprowadź następujące polecenie: sudo service ssh start

Następnie spróbuj połączyć się z nim ponownie

O mój Boże, brakowało mi tego, co wskazał gronostaj

OK, czasami rozwiązania są naprawdę proste. ostatnio napotkałem ten sam problem z gościem Slackware na hoście Windows 7. Wszystko, co musiałem zrobić, to ifconfig up eth'X 'i przypisanie IP 192.168.56.xxx podsieci 255.255.255.0 (jeśli tylko adapter hosta) To pytanie ma prawie rok, więc wspominam o tym komuś takiemu, jak ja. na tej stronie szukam hasła „odmówiono połączenia ssh” ;-)


OP stwierdził, że lokalne połączenia SSH działają, więc serwer działa.
gronostaj

-2

Miał ten sam problem, rozwiązał go, dodając wirtualny dysk twardy do maszyny wirtualnej, który nie miał.


To znaczy, że twój problem był inny. Jeśli maszyna wirtualna nie miała dysku twardego, nie została uruchomiona do systemu operacyjnego, którym była maszyna wirtualna OP. Przeczytaj uważnie pytania, aby upewnić się, że je rozumiesz przed udzieleniem odpowiedzi.
music2myear

To nie daje odpowiedzi na pytanie. Gdy zdobędziesz wystarczającą reputację , będziesz mógł komentować dowolny post ; zamiast tego podaj odpowiedzi, które nie wymagają wyjaśnienia od pytającego . - Z recenzji
music2myear

Moja maszyna wirtualna została uruchomiona na 32-bitowym pliku ISO systemu Linux, bez dodatkowego wirtualnego dysku twardego
Louis Garczynski

Co oznacza, że ​​prowadziłeś sesję „Live” Linuksa, co zdecydowanie nie jest tym, z czym OP miał do czynienia. Cieszymy się, że rozwiązałeś problem, ale twoje rozwiązanie nie jest rozwiązaniem, a szczególnie bliskie temu, czego doświadczał OP.
music2myear

Masz całkowitą rację, nie zdawałem sobie sprawy, że problem OP był tak specyficzny. To powiedziawszy, biorąc pod uwagę, że dostałem ten sam komunikat o błędzie, zachowam odpowiedź tutaj, na wypadek, gdyby ktoś z moim problemem również tu trafił.
Louis Garczyński
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.