распространенная проблема: ssh: подключение к хосту 10.0.2.15 порт 22: соединение отклонено

распространенная проблема: ssh: подключение к хосту 10.0.2.15 порт 22: соединение отклонено

Я использую VirtualBox на Windows 10 (хост) для создания двух виртуальных машин ( Guest DTи Guest S). Могу ли я подключиться по SSH Guest DTк Guest S?

У меня нет опыта работы с 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 отредактируйтеРежим работы сети, соответствующий вашим потребностям (обратите внимание на сетку).

Действия Virtualbox по изменению сети

Использование сети NAT по умолчанию

Используя NAT, VirtualBox использует специальный IP 10.0.2.2 в качестве loopback (по крайней мере, я думаю, что это все еще верно). Поэтому порты, перенаправленные с loopback, доступны всем гостям. Я думаю, вы сможете воспользоваться этим. Для связи с использованием сети NAT потребуется одно из следующих:

  • Используя VBoxManage, настройте переадресацию NATнесистемный порт (1024–65535)к более низкомусистемный порт (< 1024).

    1. В этом случае перенаправьте что-то вроде порта 2222 на порт 22 (по умолчанию для SSH). Это также предполагает, что мы будем использовать Guest SIP-адрес 10.0.2.15, согласно вопросу.
    2. Настройте переадресацию портов на хосте Virtualbox, запустите:

      VBoxManage modifyvm "имя виртуальной машины" --natpf1 "guestssh,tcp,,2222,,22"

      Весь TCP-трафик, поступающий на порт 2222 на любом интерфейсе хоста, будет перенаправлен на порт 22 в гостевой системе. Имя протокола tcp является обязательным атрибутом, определяющим, какой протокол следует использовать для пересылки (также можно использовать udp). Имя Guestssh является чисто описательным и будет автоматически сгенерировано, если оно опущено. Число после --natpf обозначает сетевую карту, как и в других частях VBoxManage.

    3. Проверьте добавленное правило:

      VBoxManage showvminfo myserver | grep 'Правило'

    4. Подключитесь к Guest Serverхосту через петлевое сопоставление и переадресацию портов дляGuest S

      neil@neil-VirtualBox$ ssh -p 2222[email protected]

  • Альтернатива: изменить (Гость S)/etc/sshd_configслушать на несистемный порт (> 1024). Затем перезагрузите ssh.

решение2

Просто удалите все ключи отпечатков пальцев ECDSA (вероятно, SHA256), содержащиеся в каталоге known-hosts.

  1. Бегатьvi ~/.ssh/known_hosts
  2. Удалите все ключи, связанные с IP-адресом субъекта в файле known_hosts.
  3. Нажмите клавишу «Esc», затем клавишу «Shift» + «:» + «x»

Связанный контент