Не вдається SSH у віртуозну віртуальну машину


11

Місцева машина Vagrant, встановлена ​​за IP-адресою 10.0.0.23з ім'ям хоста lamp-vm.

Використовуючи vagrant sshкоманду, я можу підключитися просто добре і зробити все, що мені потрібно.

Це створює помилку

$ ssh vagrant @ lamp-vm -v -v

debug1: підключення до адреси 10.0.0.23 порт 22: підключення призупинено
ssh: підключення до хоста lamp-vm порт 22: з'єднання вимкнено

Мій /etc/hostsфайл містить 10.0.0.23 lamp-vm.

Мій .ssh / config файл виглядає так

Лампа-хост-vm
User vagrant
IdentityFile ~ / .ssh / vagrant

Я спробував команду ssh також і без -i /path/to/.sh/identity_file.

Як підключитися до своєї віртуального віртуальної машини за допомогою SSH?

Відповіді:


8

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

Vagrantfile:

...
# Setting up private_network to have virtual host
config.vm.network :private_network, ip: "192.168.33.10"

# Enable ssh forward agent
config.ssh.forward_agent = true
...

ssh в машину:

ssh vagrant@192.168.33.10

Вам буде запропоновано ввести пароль (типовим є бродячий):

vagrant@192.168.33.28's password:

І бум, ти в!

PS * Ви також можете використовувати scp в будь-якому місці вашого хост-машини:

scp /path/to/src/file vagrant@192.168.33.10:/path/to/destination/file

Хоча це працює, це досить крихко - я виявив, що наш Vagrantfile викликав деякі редагування в / etc / network / інтерфейсах у VM VirtualBox, що означало, що моє SSH-з'єднання перестане. Підключення до Localhost ( ssh -p 2222 vagrant@localhost) на це не вплине.
RichVel

8

Це старе, але як немає відповіді, я надам його. Команда:

vagrant ssh

Є еквівалентом

ssh vagrant@localhost -p 2222 -i .vagrant/machines/default/virtualbox/private_key

Це поведінка за замовчуванням, якщо ви щось змінили команду зміни. Перш за все, Vagrant створить бродячого користувача у вашому гостьовому вікні, і ви будете використовувати його для ssh. Як говорили попередні люди, він за замовчуванням пересилатиме трафік з порту 2222 вашого хоста на порт 22 вашого гостя (коли ви використовуєте бродягу, ви бачите, що це повідомлення відображається). І нарешті, Vagrant створює ключі для ssh сесії, тому вам не доведеться, тому вам потрібно надати відкритий ключ як аргумент під час з'єднання через ssh.


Це справжня і правильна відповідь! Працює без проблем, наприклад, з mobaxterm. Також потрібно вказати повний шлях для
private_key

6

Така поведінка за задумом.

Vagrant використовує режим VirtualBox NAT, що означає переадресацію портів.

Ви не можете SSH безпосередньо у вашому VM, використовуючи режим NAT.

Використання 'vagrant ssh' означає, що бродяг здійснить переадресацію порту для вас, тому вам не доведеться турбуватися про це. Я думаю, він за замовчуванням підключиться до localhost на порту 2222, але спробує також розібратися зі зіткненнями номерів портів.

Якщо вам потрібно SSH безпосередньо до вашого віртуального комп'ютера, перемкніть VM в режим роботи лише з хостом або з’єднаними мережами.


Дякую Філіпу, але як би я вирішив це вирішити? Вибачте за недосвідченість.
csi

1
Я використовую лише режим хосту, і проблема не зникає.
csi

Повинна бути прийнята відповідь. Дуже корисно, щоб зрозуміти це - перехід через localhost на порт 2222 був маршрутом до робочої установки Vagrant (чомусь я не міг заставити ключ незахищеного_приватного ключа для роботи.) Я виявив, що стандарт "незахищений приватний ключ" не робота, тож я в кінцевому підсумку вказав інший приватний ключ та ім’я користувача у Vagrantfile, але частина порта 2222 localhost не потребувала змін.
RichVel

5

Я б додав це як коментар, але в даний час у мене недостатньо представників для цього. Тут я написав інструкцію для встановлення вашого віртуального комп'ютера в мостовий режим:

/ubuntu/116861/setting-up-a-network-between-a-host-and-guest-virtual-machine/116909#116909

Я сподіваюся, що Ви вважаєте це корисним!


+1 тут і на AU.SE; приємне написання.
мсанфорд

3

Windows / Vagrant / Ubuntu

Це те, що працювало для мене, і ви можете швидко зрозуміти, чи це спрацює, запустивши це на ssh-клієнті.

ssh vagrant@127.0.0.1 -p 2222 -v

-V переведе його у багатослівний режим та відобразить інформацію про налагодження ...

$ ssh vagrant@127.0.0.1 -p 2222 -v
OpenSSH_7.1p1, OpenSSL 1.0.2e 3 грудня 2015
debug1: Підключення до порту 127.0.0.1 [127.0.0.1] 2222.
debug1: Підключення встановлено.
debug1: файл посвідчення /home/Jamie/.ssh/id_rsa тип 1
debug1: key_load_public: немає такого файлу чи каталогу
debug1: файл ідентифікації /home/Jamie/.ssh/id_rsa-cert type -1
debug1: key_load_public: такого файлу немає або
debug1 каталогу : файл посвідчення /home/Jamie/.ssh/id_dsa type -1
debug1: key_load_public: Немає такого файлу чи каталогу
debug1: ідентифікаційний файл /home/Jamie/.ssh/id_dsa-cert type -1
debug1: key_load_public: Немає такого
налагодження файлу або каталогу1 : ідентифікаційний файл /home/Jamie/.ssh/id_ecdsa тип -1
debug1: key_load_public: Немає такого файлу чи каталогу
debug1: файл ідентифікації /home/Jamie/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: Немає такого файлу чи каталогу
debug1: файл ідентифікації /home/Jamie/.ssh/id_ed25519 тип -1
debug1: key_load_public: Немає такого файлу чи каталогу
debug1: файл ідентифікації /home/Jamie/.ssh/id_ed25519- тип діаграми -1
debug1: Увімкнення режиму сумісності для протоколу 2.0
debug1: Локальна версія версії SSH-2.0-OpenSSH_7.1
debug1 : Віддалений протокол версії 2.0, віддалена версія програмного забезпечення OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6
debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6 pat OpenSSH_6.6.1 * compat 0x04000000
debug1: Аутентифікація до 127.0.0.1:2222 як 'бродячий '
debug1: SSH2_MSG_KEXINIT надіслав
З'єднання закрите на 127.0.0.1

Отже ... SSH2_MSG_KEXINIT означає, що ключі обмінюються. Це незабаром не вдалося ...

У цьому випадку я видалив свої ключі та відновив їх, роблячи це на VM. ( http://ask.xmodulo.com/sshd-error-could-not-load-host-key.html )

$ ls -al / etc / ssh / ssh ключ
$ sudo rm -r / etc / ssh / ssh
ключ
$ sudo dpkg-перенастроювання openssh-сервера

Після того, як мої ключі були відновлені, я зміг перенести SSH у свою скриньку.


0

Знищено віртуальну машину
Перезавантажено віртуальну машину
Все працювало

Не знаю, чому, але очевидно, що щось не завантажилось належним чином під час першого забезпечення.


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