SSH в локальний VirtualBox з Ubuntu


1

Я встановив зображення сервера Ubuntu на VirtualBox. Далі я налаштував переадресацію порту 2222 => 22.

Коли я використовую таку команду, все працює нормально:

ssh -p 2222 java@127.0.0.1

Запрошується пароль, і я можу увійти в Ubuntu на VBox.

Однак коли я використовую:

ssh -p 2222 java@localhost

я отримую наступне

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @ ПОПЕРЕДЖЕННЯ: ВІДМОВЛЕННЯ ІДЕНТИФІКАЦІЯ ВІДХОДЖЕННЯ ЗМІН! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ МОЖЛИВО, ЩО НЕКОМИ РОБИТИ НЕЩО НАСТИ! Хтось міг би підслухати вас прямо зараз (атака "посередник")! Можливо також, що щойно змінено ключ хоста. Відбиток для ключа RSA, надісланий віддаленим хостом, є ......... Зверніться до системного адміністратора. Додайте правильний ключ хоста в /Users/cristian/.ssh/known_hosts, щоб позбутися цього повідомлення. Порушення ключа RSA в /Users/cristian/.ssh/known_hosts:2 Основний ключ RSA для [localhost]: 2222 змінився, і ви вимагали суворої перевірки. Помилка перевірки ключа хоста.

Звичайно

ping localhost PING localhost (127.0.0.1): 56 байт даних 64 байти з 127.0.0.1: icmp_seq = 0 ttl = 64 час = 0.038 мс

Будь-яка ідея чому?

Дякую


змінився ключ хоста? чи хост перевстановлений?
Скаперен

немає єдиної різниці, коли я називаю це 127.0.0.1 і вдруге з localhost
Cris

якийсь інший хост, мабуть, раніше отримав доступ до localhost
Скаперен,

Що ви маєте на увазі ?
Кріс

ssh не відрізняє хостів за номером порту ... 2222 - тунель для якогось іншого хоста?
Скаперен

Відповіді:


1

моє вирішення для локальних хостів, які переустановлюються багато, - налаштувати ssh так, щоб локальні IP-адреси використовували / dev / null для файлу хостів (небезпечно, будьте обережні).


0

Просто для відновлення проблеми (для очищення деяких запитань у коментарях): У початковому запитанні зазначено, що використовується NAT, тому і хост, що управляє VM, і сам VM ідентифікуються 127.0.0.1 aka localhost. Таким чином, від хоста можна ввійти в VM, використовуючи переадресацію портів (за вказаною заявою), зіставивши порт хоста 2222 на порт VM 22. Якщо у нас є декілька віртуальних машин, які ми запускаємо, всі з аналогічною мережевою конфігурацією, вони з'являються на ssh-клієнті як ціль змінюється (тому що вона є).

Так, до початкового питання, щоб вирішити проблему під рукою: замість налаштування sshвикористовувати /dev/nullдля файлу хостів (які можна було б зробити на основі кожного хоста в ~/.ssh/configспеціально для локального хоста), можна було б просто дати VMS унікальний імені у /etc/hostsфайлі, а потім зверніться до них за допомогою імені хоста, а не 127.0.0.1 або localhost. Отже, кожен VM матиме власне ім’я у файлі відомих хостів хоста. Наприклад,

$ sudo vim /etc/hosts
...
127.0.0.1   localhost my_real_hostname
127.0.0.1   my_vm1
127.0.0.1   my_vm2
...

Нові відеомагнітофони можна додавати за необхідності (або додаючи VM всі в одному рядку, або, окремими рядками, що може полегшити сценарій додавання / видалення трохи легше за допомогою sed(вправа, залишена для читача)).

Потім для входу в VM використовуйте нове ім’я хоста, яке насправді просто відображає на 127.0.0.1 (знову ж таки, припускаючи, що переадресація портів налаштована в розширених мережевих настройках VirtualBox віртуальної машини),

$ ssh -p 2222 vm_user@my_vm2
The authenticity of host '[my_vm2]:2222 ([127.0.0.1]:2222)' can't be established.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[my_vm2]:2222' to the list of known hosts.

І щоб зняти його,

$ ssh-keygen -R '[my_vm2]:2222'
# Host [my_vm2]:2222 found: line 16
/home/user/.ssh/known_hosts updated.
Original contents retained as /home/user/.ssh/known_hosts.old

Зауважте, що те саме можна зробити (неодноразово) з localhost, який спричинив оригінальну проблему,

$ ssh-keygen -R '[localhost]:2222'
# Host [localhost]:2222 found: line 16
/home/user/.ssh/known_hosts updated.
Original contents retained as /home/user/.ssh/known_hosts.old
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.