Як я можу його налаштувати, щоб я міг ввести SSH у свій VMWare гість?


16

Чомусь документації щодо цього процесу в Інтернеті досить бракує або застаріло. В основному, у мене є гостьова віртуальна машина VMWare у VMWare Fusion (працює під управлінням Ubuntu 10.10), і я маю Mac OSX 10.6 в якості хоста. Я хочу мати змогу SSH з Mac до Linux VM. Як я можу налаштувати речі, щоб це можливо?


Пов’язано: superuser.com/questions/729712/… Принаймні, в Windows, ви можете просто сш на IP-адресу, встановлену VMWare автоматично.
Бен

Відповіді:


13

абсолютно - лише питання використання лише локального або мостового інтерфейсу та опрацювання ip-адреси системи, на якій працює ssh-сервер (за допомогою команди ifconfig). встановіть openssh-сервер у віртуальній машині, використовуйте ваш ssh-клієнт та його виконано.

Якщо ви використовуєте NAT-інтерфейс, це може бути складніше, і його, як правило, не рекомендується.


1
Для людей, які не знають, не забудьте запустити ssh-сервер за допомогою service sshd startабо якщо ви хочете запустити його під час завантаженняchkconfig sshd on
Anthony Hatzopoulos,

21

Насправді, існує ціла купа вагомих причин використовувати NAT для своїх віртуальних машин, а не мостового інтерфейсу .. (Це давнє питання, але він з'явився як мій перший результат пошуку того, як це зробити, переміщаючись з VirtualBox, куди я роблю це весь час, тому я вважав, що варто додати)

Лише кілька причин використовувати NAT:

  • Це легко і портативно
  • якщо ви користуєтеся локальною мережею клієнтів, для отримання IP-адреси потрібна відома MAC-адреса (інакше вам доведеться спробувати відгадати невикористані та ризикувати конфліктом, і взагалі привертати до себе погану увагу :)),
  • такі речі, як дозволити вашим віртуальним машинам використовувати один проксі-сервер на своєму хості (IE, якщо ви не керуєте мережею, на якій ви працюєте), або мати можливість брандмауера / фільтрувати їх трансляцію (windows тощо) трафіку на виході за один зручне місце.
  • можливість призначити їм фіксовану або зарезервовану IP-адресу, щоб ви могли посилатися на них по імені / IP з-за меж хоста (знову ж таки, якщо ви не можете отримати бронювання в мережі за допомогою мостового інтерфейсу)
  • але найбільше це дозволяє вам ховатися за єдиним конфігурацією брандмауера на своєму хості та ділитися речами між вами / ними більш захищеним способом, а не піддавати кожен VM «дикому» та захищати їх усіх індивідуально тощо .. Так само, як ви робите з інтернет-модемом / роутером

У будь-якому випадку для мого випадку (VMWare Workstation 10, хост Linux, OS X Guest) та кожного, хто натрапляє на це, це огляд того, що працювало для мене. Крім вафлі та що-небудь, є насправді лише 3 основні кроки.

  • Отже, спершу вам потрібно вирішити, що ви хочете дозволити своєму ВМ / гостю "поза" вашого хоста (зверніть увагу, як нижче, ви зможете легко дістатися до нього з самого хоста). Безпечною ставкою було б просто виставити / дозволити лише SSH (порт 22) машинам у вашій підмережі. Ви також можете дозволити порт 80/443, якщо у вас був веб-сервер на VM тощо, а також ви можете використовувати "тунель" для доступу до інших служб за допомогою SSH (наведемо приклад нижче), а також використовувати FUSE / SSHFS для того, щоб дати хосту доступ до файлової системи .. (Або об'єкт спільної папки у VMWare, але я його ще не використовував).

Тож ідея є приблизно такою: "Дозволити речам у локальній мережі мого хоста (наприклад, 10.1.1.0/24 або 192.168.1.0/24) підключитися до порту 22222 на хості, який ми будемо пересилати разом до порту 22 a конкретний гість ". Звичайно, це повинен бути конкретний гість (Це робить можливість налаштувати ваші IP-адреси ще кориснішими, і ви можете змінити їх в одному місці, не відкриваючи кожен VM), як і робити це через Інтернет-роутер, щоб дозволити ігрові речі через тощо.

  • Далі, вирішивши, які саме послуги, вам потрібно буде

    • дозволити підключення вашого хост-машини до "зовнішнього" порту через iptables / брандмауер. Порт 22, можливо, вже буде використовуватися на хості sshd, тому ви можете використовувати щось на зразок 22222. У цьому випадку додайте щось подібне до /etc/ufw/before.rules (і перезавантажте ufw)

      # Ваша локальна мережа / маска підмережі може бути на зразок 10.1.1.0/24 ...

      -A ufw перед входом -p tcp - доповідь 22222 -m стан - держава NEW -s my_subnet_and_mask -j ACCEPT `

    • надайте вашій ВМ зарезервовані IP-адреси в головному конфігурації VMware DHCP ( необов’язково, але простіше розраховувати, якщо ви хочете "пробити" його від хоста ), додавши щось подібне внизу / etc / vmware / vmnet8 / dhcpd / dhcpd.conf

      # Just like a normal dhcpd reservation
      host my_vm_1 {
           hardware ethernet *your_vm_eth_mac_here**;
           # This is in default range for guests, but outside the 'pool'.
           # - check that it matches your vmware config
           fixed-address 192.168.198.10; 
           # And/or your own internal nameserver etc
           option domain-name-servers 8.8.8.8;
           option domain-name "some_domain_suffix";
           # This is the default default-route of the VM
           option routers 192.168.198.2; 
      }
      
    • Скажіть VMWare переадресовувати з'єднання з 22222 на гість: 22, додавши це до розділу [incomingtcp] /etc/vmware/vmnet8/nat/nat.conf, а потім перезапустіть сервіс (и) vmware (див. Примітку нижче)

      [incomingtcp]

      22222 = 192.168.198.10:22

    • Також вам може знадобитися дозволити підключення до порту 22 у вашого гостя, залежно від того, що це / чи має власний брандмауер. У цьому гостьовому випадку ОС X слід було включити "віддалений вхід" через налаштування спільного доступу, в Linux це може бути через ufw, як на хості вище тощо.

Отже, як тільки це все буде зроблено, ви можете бути на своєму ноутбуці чи іншій машині в локальній мережі, перейдіть на свою робочу станцію (хост vmware) 22222, і ви будете бігти до гостя, про який ви сказали, щоб переслати вас. Як було сказано вище, якщо ви також скажете, що хочете мати можливість підключитися до postgres-сервера на гостьовому сервері (або vnc-сервері, який часто не шифрується), ви можете тунелювати в цій самій команді (замість того, щоб додавати його також до конфіденційності dhcp). Наприклад, наприклад

console ~> ssh root@hostip -p 22222 -L 54320:localhost:5432

і ви будете запрошені до гостя через ip вперед у vmware, і ви могли б вказати свій інструмент pgadmin3 на localhost: 54320 (без приватного доступу) на своєму ноутбуці, і ваш трафік в мережі буде зашифрований. (Примітка "localhost" там уже передано гостю)

Примітки

  • Існують всілякі способи цього зробити. Для одного, ви можете просто тунель для розміщення і вкажіть ip гостя в -L, і він "вирветься" і вкаже вас туди, але варіант nat.conf хороший і зручно, і вам не потрібно вводити його щоразу. Існують також інші способи переадресації портів
  • Я бачив посилання на пару потоків gui віртуальної мережі, щоб це зробити (як у virtualbox), але я не міг знайти його в цій версії
  • Я не використовую Windows, так що, хоча я припускаю, це було б дуже схоже на налаштування як хост, я не впевнений. Налаштування NAT повинні працювати для будь-якого гостя vmware (хоча я не використовував жодної іншої версії VMWare)
  • VMware встановлює маршрут, щоб хост міг зв’язатися з NAT-гостем безпосередньо, IE з консолі хоста, я можу пінг / ssh і т.д. NAT гість 192.168.198.10 (визначено вище)

    console ~> route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    <snip>
    192.168.198.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet8
    192.168.233.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
    
  • З нотатки про Linux, є деяке сповіщення з vmware з systemd init, щоб добре запуститися автоматично, і разом з цим я виявив, що не можу просто перезапустити vmware (vmci не завантажується знову), і мені доведеться перезапустити моя машина, щоб зробити NAT / DHCP речі над палицею, але у вас може не виникнути проблеми. Однак є деякі теми з системними рішеннями

Звучить чудово, але, схоже, ufw не присутній на моїй машині OS X 10.9.5. Це щось старше OS X, але тепер замість цього використовується щось інше?
Стів Йоргенсен

Привіт @SteveJorgensen, ufw знаходиться під Linux (Мій хост - Linux, а в цій відповіді гість був OS X), але це та сама ідея з OS X, що і хост; дозволити доступ до якогось конкретного порту (у вищенаведеному випадку 22222) на хості будь-яким інструментом, який підходить, та скажіть VMWare зробити переадресацію гостю. Інша згадка ufw полягала в тому, що все, що ви маєте в якості гостя, може також увімкнути брандмауер, тож вам може знадобитися увійти до гостя і дозволити доступ до порту, на який ви перенаправлялися (у вищенаведеному випадку 22)
herdingofthecats

На даний момент у мене немає OS X, але я, мабуть, пам’ятаю, що користувався ipfwв якийсь момент. Я швидко здійснив пошук для вас і не побачив багато корисних дописів, але це згадка pfctl, яку я бачу в іншому дописі, схоже, є заміною pfctl в OS X 10.10 вгору. Я не можу випробувати це шкода, але сподіваюся, що це трохи допомагає
herdingofthecats

2

Щоб спростити речі:

  1. Запустіть свій VM
  2. З меню> Віртуальна машина> Мережевий адаптер> Міст.
  3. У віртуальній машині, знайти свій IP - адреса, наприклад , як в Linux: ifconfig.
  4. Від хоста, ssh використовуючи ssh user@ip.

Я припускаю, що у вас встановлено і працює служба SSH.


1

Замість того, щоб знати IP для SSH, я налаштував Avahi на своїх гостей Linux, щоб він транслював динамічне ім’я хоста, ознайомтеся з моєю відповіддю тут: /superuser//a/710233/242604

Сподіваюся, це допомагає!


-1

Ви можете використовувати мостовий мережевий інтерфейс, який допомагає підключитися до Інтернету та просте з'єднання SSH

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.