Опитвам се да SSH към местната виртуална машина Ubuntu с Putty

Създадох виртуална машина на сървъра Ubuntu, инсталирах OpenSSH и сега се опитвам да се свържа с него с помощта на Putty. В Putty, под "Име на хоста", поставих "Ubuntu", тъй като така мислех, че се нарича, когато настройвах виртуалната машина. Въпреки това получавам грешката: "Connection Timed Out".

Опитах се също така да поставя "127.0.0.1" в името на хоста в Putty и просто получавам "Connection Refused". Имайте предвид, че съм направил пренасочването на портовете за SSH и HTTP в рамките на Oracle VM, така че не знам как да го задействам.

Решение

VirtualBox ще създаде частна мрежа (10.0.2.x), която ще бъде свързана с мрежата на хоста ви чрез NAT. (Освен ако не е конфигурирано друго.)

Това означава, че не можете да осъществите директен достъп до хост от частната мрежа от мрежата на хоста. За да го направите, се нуждаете от пренасочване на портове. В мрежовите предпочитания на вашата виртуална машина можете например да конфигурирате VirtualBox да отвори порт 22 на 127.0.1.1 (loopback адрес на вашия хост) и да препраща всеки трафик към порт 22 на 10.0.2.1 (вътрешния адрес на вашата виртуална машина)

По този начин можете да насочите putty към порт 22 на 127.0.1.1 и VirtualBox ще пренасочи тази връзка към вашата ВМ, където нейният ssh демон ще отговори на нея, позволявайки ви да влезете.

Коментари (13)

Исках да използвам Putty, за да се свържа с моя Ubuntu на виртуална кутия (причини за комфорт, VB е просто странно. Не мога да работя, ако не е на подходящ терминал). Както и да е,

  1. Уверете се, че ssh клиентът е инсталиран на вашия Linux. Ако не, инсталирайте го sudo apt install ssh.
  2. Изключете операционната система.
  3. Сега на вашия VB отидете в Settings ->``Network -> на Adapter 1 изберете Host-only adapter->кликнете върху OK.
  4. Сега стартирайте операционната си система. Изпълнете ifconfig; сега inet адресът е вашият IP.
  5. Използвайте това и го стартирайте на вашия putty. Влезте в системата с вашите идентификационни данни.

Единственият недостатък на използването на адаптер само за хост е, че вашата гостуваща операционна система няма да има достъп до по-широката мрежа (напр. до интернет).

Ако трябва и вашата виртуална машина да има достъп до интернет, оставете адаптер 1 като NAT и включете адаптер 2, конфигуриран като адаптер само за хост. Това ще позволи на вашата виртуална машина да се свързва с интернет, използвайки NAT, както и да осъществява локална връзка с вашия хост, използвайки Host-Only.

Коментари (5)

Първо трябва да решите дали вашата виртуална машина е свързана с хост машината ви чрез мостова връзка или чрез NAT, но и в двата случая ще трябва да поставите IP адреса на виртуалната машина в putty, за да можете да се свържете с ip, в терминала на виртуалната машина изпълнете тази команда, за да ви покаже IP адреса на машината. (и не 127.0.0.1 не е IP адресът на машината)

VM # ip addr show

1: lo:  mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:d9:16:b3 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.1 scope global eth0
       valid_lft forever preferred_lft forever

в този случай моят IP адрес ще бъде 10.0.2.15,

Първо се опитайте да се уверите, че можете да комуникирате на базово ниво с виртуалната машина, отворете терминален прозорец на вашия хост и опитайте да пингнете виртуалната машина

HOST # ping 10.0.2.15

PING 10.0.2.15 (10.0.2.15) 56(84) bytes of data.
64 bytes from 10.0.2.15: icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from 10.0.2.15: icmp_seq=2 ttl=64 time=0.110 ms
64 bytes from 10.0.2.15: icmp_seq=3 ttl=64 time=0.099 ms

Ако получите резултат ant, тогава се уверете, че на виртуалната машина е стартирана услугата ssh, в терминала на виртуалната машина въведете като root,

VM # netstat -lnpt | grep 22
tcp   0  0  0.0.0.0:22  0.0.0.0:*  LISTEN  2361/sshd

Това показва, че имаме услуга/процес с PID(2361), наречен sshd (OpenSSH daemon), който слуша на порт 22.

Можете да проверите дали услугата работи правилно, като се опитате да се свържете с нея от самата виртуална машина,

VM # ssh 127.0.0.1

След това трябва да се уверите, че не блокирате порт 22 във вашата защитна стена/iptables, не мога да повярвам, но все пак проверете. Във виртуалната машина въведете тази команда, за да ви покаже iptables,

VM # iptables -nvL INPUT

в изхода трябва да има ред като този:

0  0  ACCEPT  tcp  --  *  *  0.0.0.0/0  0.0.0.0/0  tcp  dpt:22  ctstate  NEW
Коментари (5)