Ssh: Не удалось разрешить имя хоста [имя хоста]: nodename или servname предоставлено или неизвестно

Я пытаюсь настроить VPN с помощью малины Pi, и первым шагом становится возможность ssh в устройстве из-за пределов локальной сети. По какой-то причине это оказывается невозможным, и я не знаю, почему. Когда я пытаюсь ssh на свой сервер с [email protected], я получаю ошибку:

ssh: Could not resolve hostname [hostname]: nodename nor servname provided, or not known 

Однако я могу войти на сервер с помощью

ssh [email protected][local IP]

Сервер - это модель Ribberry Pi Model B, в которой используется последний дистрибутив Raspbian, и машина, с которой я пытаюсь подключиться, - это Macbook Pro, работающий с Mavericks. ssh был включен на малине Pi, когда я установил Raspbian.

Я просматривал Qaru в течение нескольких часов, пытаясь понять, есть ли у кого-то еще эта проблема, и я ничего не нашел. Каждое учебное пособие ssh, которое я нахожу, говорит, что я должен просто настроить его на удаленном компьютере и войти в него из любого места с помощью имени хоста, и я никогда не имел успеха с этим.

Ответ 1

Недавно я столкнулся с той же проблемой. Я был в состоянии ssh к моему pi в моей сети, но не из-за пределов моей домашней сети.

У меня уже было:

  • установлен и протестирован ssh в моей домашней сети.
  • Задайте статический IP-адрес для моего пи.
  • Настройте службу Dynamic DNS и установите программное обеспечение на моем пи. Я ссылался на эти инструкции для настройки статического ip, и есть еще много учебных ресурсов.

Кроме того, я настроил перенос портов на моем маршрутизаторе для размещения веб-сайта, и у меня был даже порт 22 переадресации на мой статический IP-адрес для ssh, но я оставил поле пустым, где вы указываете приложение, которое вы выполняете для порта переадресация на маршрутизатор. Во всяком случае, я добавил 'ssh' в это поле и, VOILA! Рабочее соединение ssh из любого места в мой pi.

Я выписал настройки перенаправления портов маршрутизатора.

(ApplicationTextField) _ssh   (внешний порт) _22   (Внутренний порт) _22   (Protocal) _Both   (К IP-адресу) _192.168.1. ###   (Включено) _checkBox

Настройки переадресации портов могут отличаться для разных маршрутизаторов, поэтому найдите маршруты для своего маршрутизатора.

Теперь, когда я за пределами моей домашней сети, я подключаюсь к своему пи, набрав:

ssh pi @[имя хоста]

Затем я могу ввести свой пароль и подключиться.

Ответ 2

У меня была такая же проблема, связанная с удаленной машиной. но мне удалось войти в систему, как показано ниже:

ssh -p 22 [email protected]

или

ssh -l myName -p 22 hostname

Ответ 3

Если вы на Mac, перезапуск DNS-ответчика исправил проблему для меня.

sudo killall -HUP mDNSResponder

Ответ 4

Если вам нужен доступ к VPN из любой точки мира, вам необходимо зарегистрировать доменное имя и указать его на общедоступный IP-адрес вашего VPN/сетевого шлюза. Вы также можете использовать службу Dynamic DNS для подключения имени хоста к общедоступному ip.

Если вам нужно только ssh от вашего Mac до вашей малины внутри вашей локальной сети, сделайте следующее: на вашем Mac отредактируйте /etc/hosts. Предполагая, что у малины есть имя хоста "ягода" и ip "172.16.0.100", добавьте одну строку:

# ip           hostname
172.16.0.100   berry

Теперь: ssh [email protected] должен работать.

Ответ 5

У меня была та же проблема, которую я смог решить, добавив .local в имя хоста, ala ssh [email protected]

Ответ 6

Если ваша команда:

$ ssh -p 1122  path/to/pemfile [email protected][hostip/hostname]

Вы также столкнетесь с той же ошибкой

ssh: Could not resolve hostname [hostname]: nodename nor servname provided, or not known

когда вы пропустите опцию -i /path/to/pemfile ssh

Итак, команда должна быть:

$ ssh -p 1122 -i path/to/pemfile [email protected][hostip/hostname]

Ответ 7

У меня была та же проблема: адрес, показанный в разделе "Настройки" → "Общий доступ" → "Удаленный вход", не работал, и я получил "... nodename или servname, предоставленный или неизвестный". Однако, когда я вручную отредактировал настройки (в разделе "Настройки" → "Общий доступ" → "Удаленный вход" → "Редактировать" ) и включил "Использовать динамическое глобальное имя хоста", это неожиданно сработало.

enter image description here

enter image description here

Ответ 8

Мне нужно было подключиться к удаленному серверу Amazon

ssh -i ~/.ssh/test.pem -fN -L 5555:localhost:5678 [email protected]

Я получил следующую ошибку.

ssh: Could not resolve hostname <hostname.com>: nodename nor servname provided, or not known

Решение для Mac OSX

Pinging хозяин решил проблему. Я использую Mac OSX Seirra.

ping hostname.com

Теперь проблема решена. Возможность подключения к серверу.

Примечание: я попробовал это решение. Но это не сработало. Затем ping разрешил проблему.

Ответ 9

Похоже, что некоторые приложения не читают символические ссылки /etc/hosts (по крайней мере, на macOS), вам нужно жестко связать их.

ln /path/to/hosts_file /etc/hosts

Ответ 10

Это происходило со мной при попытке получить доступ к Github. Проблема в том, что я имел обыкновение делать:

git remote add <xyz> ssh:\\[email protected]

Но если у вас возникла эта ошибка из вопроса, удаление ssh:\\ может решить проблему. Он решил это для меня!

Обратите внимание, что вам нужно будет сделать git remote remove <xyz> и повторно добавить удаленный URL-адрес без ssh:\\.

Ответ 11

Для меня проблема была опечатка в моем файле ~/.ssh/config. У меня было:

Host host1:
  HostName 10.10.1.1
  User jlyonsmith

Проблема была в : после host1 - его там быть не должно. ssh не дает предупреждений об опечатках в файле ~/.ssh/config. Когда он не может найти host1, он ищет машину локально, не может найти ее и печатает загадочное сообщение об ошибке.

Ответ 12

Попробуйте это, учитывая ваши разрешенные порты. Храните файл .pem в папке Documents, например.

Чтобы получить доступ к нему, все, что вам нужно сделать, это cd [directory], который перемещает вас в каталог выделенного файла. Вы можете сначала напечатать ls, чтобы указать содержимое каталога, в котором вы сейчас находитесь:

ls
cd /Documents
chmod 400 mycertificate.pem
ssh -i "mycertificate.pem" [email protected] -p 80