Я хочу получить доступ к корню моей виртуальной машины vSphere ESXi 5.5 Ubuntu через PuTTy. Поэтому я загрузил публичный IP-адрес виртуальной машины и попробовал SSHing через порт 22.

Это дало следующую ошибку:

PuTTy фатальная ошибка сети

Я вошел в файл конфигурации sshd и изменил порт с 22 на 443 и попытался снова подключиться через ssh через порт 443, но получил сеанс терминала, где я ничего не мог набрать.

Я снова изменил порт в файле конфигурации на порт 80, и попытался снова через PuTTy. На этот раз я получил еще одну PuTTy фатальную ошибку.

PuTTy фатальная ошибка-сервер закрыт

Кто-нибудь здесь обходил эту проблему?

2 ответа2

2

Поскольку вы ничего не говорите, я собираюсь предположить, что у вас есть относительно стандартная установка 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-запросы, но это не сеанс входа в систему терминала, а оболочка. В общем, подключение к случайным портам (даже известным портам) вряд ли даст вам результат, к которому вы стремитесь.

-1

внутри машины с Ubuntu откройте /etc /ssh /sshd_config и измените PermitRootLogin на yes.

# Authentication: 
LoginGraceTime 120 
PermitRootLogin yes
StrictModes yes

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .