![распространенная проблема: ssh: подключение к хосту 10.0.2.15 порт 22: соединение отклонено](https://rvso.com/image/1157738/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F%20%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0%3A%20ssh%3A%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BA%20%D1%85%D0%BE%D1%81%D1%82%D1%83%2010.0.2.15%20%D0%BF%D0%BE%D1%80%D1%82%2022%3A%20%D1%81%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BE%D1%82%D0%BA%D0%BB%D0%BE%D0%BD%D0%B5%D0%BD%D0%BE.png)
Я использую VirtualBox на Windows 10 (хост) для создания двух виртуальных машин ( Guest DT
и Guest S
). Могу ли я подключиться по SSH Guest DT
к Guest S
?
Guest DT
это УбунтуРабочий стол18.04.Guest S
работает под управлением UbuntuСервер18.04.- Терминология VirtualBox
У меня нет опыта работы с SSH. Я погуглил и прочитал ответы на «похожие вопросы» на этом сайте.
Ошибка
В Guest DT
, я делаю это:
$ ssh [email protected]
ssh: connect to host 10.0.2.15 port 22: Connection refused
Примечание:
- Я могу успешно пропинговать 10.0.2.15
test
мое имя пользователя наGuest S
.
Настройка среды
На Guest DT
:
$ ssh-keygen
$ cat ~/.ssh/id_rsa.pub
ssh-rsa <a very long key> neil@neil-VirtualBox
На Guest S
:
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ touch ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ echo "ssh-rsa <a very long key> neil@neil-VirtualBox" > ~/.ssh/authorized_keys
$ /etc/init.d/ssh restart
На Guest S
:
test@server01:~$ service sshd status
ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-06-15 02:05:04 UTC; 1h 16min ago
Process: 903 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
Main PID: 906 (sshd)
Tasks: 1 (limit: 2317)
CGroup: /system.slice/ssh.service
└─906 /usr/sbin/sshd -D
Jun 15 02:05:04 server01 systemd[1]: Starting OpenBSD Secure Shell server...
Jun 15 02:05:04 server01 sshd[906]: Server listening on 0.0.0.0 port 22.
Jun 15 02:05:04 server01 sshd[906]: Server listening on :: port 22.
Jun 15 02:05:04 server01 systemd[1]: Started OpenBSD Secure Shell server.
$ sudo ufw status
[sudo] password for test:
Status: inactive
/etc/ssh/sshd_config contains :
#PubkeyAuthentication yes
решение1
Я думаю, что сетевые настройки по умолчанию для гостевой системы VirtualBox NAT
на самом деле не предназначены для достижения такого типа сетевого взаимодействия; но, основываясь на старых сообщениях, это может быть возможнопересылканесистемного порта на гостевой порт и использование порта по умолчаниюIP-адрес обратной связидля доступа к Гостю. 10.0.2.2 — это петля по умолчанию.
Настройка сети
Однако, самый простой способ — убедиться, что вы выбрали правильную сеть для каждого из гостей. Выключите гостевые машины, затем в VirtualBox отредактируйтеРежим работы сети, соответствующий вашим потребностям (обратите внимание на сетку).
Использование сети NAT по умолчанию
Используя NAT, VirtualBox использует специальный IP 10.0.2.2 в качестве loopback (по крайней мере, я думаю, что это все еще верно). Поэтому порты, перенаправленные с loopback, доступны всем гостям. Я думаю, вы сможете воспользоваться этим. Для связи с использованием сети NAT потребуется одно из следующих:
Используя VBoxManage, настройте переадресацию NATнесистемный порт (1024–65535)к более низкомусистемный порт (< 1024).
- В этом случае перенаправьте что-то вроде порта 2222 на порт 22 (по умолчанию для SSH). Это также предполагает, что мы будем использовать
Guest S
IP-адрес10.0.2.15
, согласно вопросу. Настройте переадресацию портов на хосте Virtualbox, запустите:
VBoxManage modifyvm "имя виртуальной машины" --natpf1 "guestssh,tcp,,2222,,22"
Весь TCP-трафик, поступающий на порт 2222 на любом интерфейсе хоста, будет перенаправлен на порт 22 в гостевой системе. Имя протокола tcp является обязательным атрибутом, определяющим, какой протокол следует использовать для пересылки (также можно использовать udp). Имя Guestssh является чисто описательным и будет автоматически сгенерировано, если оно опущено. Число после --natpf обозначает сетевую карту, как и в других частях VBoxManage.
Проверьте добавленное правило:
VBoxManage showvminfo myserver | grep 'Правило'
Подключитесь к
Guest Server
хосту через петлевое сопоставление и переадресацию портов дляGuest S
neil@neil-VirtualBox$ ssh -p 2222[email protected]
- В этом случае перенаправьте что-то вроде порта 2222 на порт 22 (по умолчанию для SSH). Это также предполагает, что мы будем использовать
Альтернатива: изменить (Гость S)/etc/sshd_configслушать на несистемный порт (> 1024). Затем перезагрузите ssh.
решение2
Просто удалите все ключи отпечатков пальцев ECDSA (вероятно, SHA256), содержащиеся в каталоге known-hosts.
- Бегать
vi ~/.ssh/known_hosts
- Удалите все ключи, связанные с IP-адресом субъекта в файле known_hosts.
- Нажмите клавишу «Esc», затем клавишу «Shift» + «:» + «x»