Поскольку вы ничего не говорите, я собираюсь предположить, что у вас есть относительно стандартная установка Ubuntu на этой виртуальной машине.
Это немного запутывает воду, когда вы говорите, что используете "публичный" IP-адрес виртуальной машины, потому что это может означать несколько разных вещей.
Однако стоит отметить одну вещь: ваша первоначальная ошибка («Ошибка сети: соединение отклонено» при попытке подключения к порту 22) говорит вам, что вы смогли подключиться к системе, работающей внутри виртуальной машины, и эта система сказала, что ничего не слушает на конкретном IP-адресе и комбинации портов, на которой вы его достигли.
Я уверен, что установки Ubuntu на рабочих станциях не поставляют работающий SSH-сервер по умолчанию. Варианты сервера, однако, вполне могут сделать это.
Используйте консоль VM для входа в систему и проверьте, работает ли сервер SSH. В данный момент у меня нет удобной системы Ubuntu, но в терминале это должно быть похоже на
$ service sshd status
Это может упоминаться как что-то вроде ssh
, ssh-server
, openssh-server
или что-то в этом роде вместо sshd
, но завершение табуляции в ssh
(тип ssh
tab) должно вас закрыть. Вам может понадобиться sudo
, например, sudo service sshd status
, но я думаю, что обычный доступ пользователя должен быть достаточным для получения отчета о состоянии службы (работает / остановлен).
Если SSH-сервер не запущен или даже не установлен, это объясняет, почему вы получили ошибку "Отказано в соединении". Установите SSH-сервер, используя что-то вроде:
$ sudo apt-get -u install openssh-server
Убедитесь, что список устанавливаемых пакетов выглядит нормально, и подтвердите. Сервер SSH будет запущен в конце процесса установки.
Теперь посмотрите на /etc /ssh /sshd_config. Он будет иметь ноль или более директив Port
и ListenAddress
дающих IP-адреса или номера портов (номер порта по умолчанию равен 22, если не указан, и сервер будет прослушивать все IP-адреса, если вы явно не укажете это иначе). Это IP-адрес и порт, к которому нужно подключиться.
Если не указан IP-адрес (а), ip addr show
покажет вам сетевые интерфейсы внутри виртуальной машины и их соответствующие IP-адреса. Это те, которые сервер SSH будет прослушивать.
Вооружившись этой информацией, выполните все магические заклинания, необходимые для подключения PuTTY к этой комбинации IP-адреса и порта. (Это может включать, например, пробивание дыры или настройку переадресации портов в NAT или брандмауэре.)
Как только это будет сделано, вы сможете подключиться с помощью PuTTY и получить сеанс терминала в качестве непривилегированного пользователя на виртуальной машине Ubuntu. Оттуда, используйте sudo
для повышения ваших привилегий по мере необходимости, как если бы вы сидели перед физической системой.
Я рекомендую настроить проверку подлинности открытого ключа, и я очень рекомендую против того, чтобы корневая войти в систему непосредственно. Однако, если вам абсолютно необходимо разрешить root для прямого входа в систему, отредактируйте файл /etc /ssh /sshd_config и укажите PermitRootLogin yes
, затем sudo passwd root
и задайте правильный пароль для root и перезапустите демон SSH. Опять же, я не рекомендую это.
С этим из пути, что было проблемой с вашим подключением к портам 80 и 443? Порт 80 является портом по умолчанию для HTTP, а порт 443 является портом по умолчанию для HTTPS. Если веб-сервер работает, вероятно, он прослушивает оба этих порта, и при подключении он будет ожидать HTTP-запросов; в случае порта 443 после согласования SSL. Конечно, можно вручную выдавать HTTP-запросы, но это не сеанс входа в систему терминала, а оболочка. В общем, подключение к случайным портам (даже известным портам) вряд ли даст вам результат, к которому вы стремитесь.