Ошибка доступа к корню виртуальной машины через PuTTy
Я хочу получить доступ к корню моей виртуальной машины vSphere ESXi 5.5 Ubuntu через PuTTy. Поэтому я загрузил публичный IP-адрес виртуальной машины и попробовал SSHing через порт 22.
Это дало следующую ошибку:
Я вошел в конфигурационный файл sshd и изменил порт с 22 на 443 и попытался снова подключиться через ssh через порт 443, но получил сеанс терминала, где я ничего не мог набрать.
Я снова изменил порт в файле конфигурации на порт 80, и снова попробовал через PuTTy. На этот раз я получил еще одну PuTTy фатальную ошибку.
Кто-нибудь здесь обходил эту проблему?
2 ответа
Поскольку вы ничего не говорите, я собираюсь предположить, что у вас есть относительно стандартная установка Ubuntu на этой виртуальной машине.
Это немного запутывает воду, когда вы говорите, что используете "публичный" IP-адрес виртуальной машины, потому что это может означать несколько разных вещей.
Однако стоит отметить одну вещь: ваша первоначальная ошибка ("Ошибка сети: соединение отклонено" при попытке подключения к порту 22) говорит вам, что вы смогли подключиться к системе, работающей внутри виртуальной машины, и эта система сказала, что ничего не прослушивается. на конкретном IP-адресе и комбинации портов, на которой вы его достигли.
Я уверен, что установки Ubuntu на рабочих станциях не поставляют работающий SSH-сервер по умолчанию. Варианты сервера, однако, вполне могут сделать это.
Используйте консоль VM для входа в систему и проверьте, работает ли сервер SSH. В данный момент у меня нет удобной системы Ubuntu, но в терминале это должно быть похоже на
$ service sshd status
Это можно назвать чем-то вроде ssh
, ssh-server
, openssh-server
или что-то в этом роде вместо sshd
, но завершение вкладки на ssh
(тип ssh
вкладка) должен вас закрыть. Вам может понадобиться 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 входил напрямую. Однако, если вам абсолютно необходимо разрешить пользователю root вход в систему напрямую, отредактируйте файл / etc / ssh / sshd_config и укажите PermitRootLogin yes
, затем sudo passwd root
и дайте root хороший пароль, и перезапустите демон SSH. Опять же, я не рекомендую это.
С этим из пути, что было проблемой с вашим подключением к портам 80 и 443? Порт 80 является портом по умолчанию для HTTP, а порт 443 является портом по умолчанию для HTTPS. Если веб-сервер работает, вероятно, он прослушивает оба этих порта, и при подключении он будет ожидать HTTP-запросов; в случае порта 443, после согласования SSL. Конечно, можно вручную выдавать HTTP-запросы, но это не сеанс входа в систему терминала, а оболочка. В общем, подключение к случайным портам (даже известным портам) вряд ли даст вам результат, к которому вы стремитесь.
Внутри машины с Ubuntu откройте /etc/ssh/sshd_config и измените PermitRootLogin на yes.
# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes