Я хочу получить доступ к SSH-серверу на Raspberry Pi (с Raspbian OS) из SSH-клиента на компьютере X86_64 с Ubuntu 14.04, оба расположены в одной домашней сети.
Я могу SSH от Raspberry Pi, используя следующую команду: ssh pi@73.***.***.***
; где 73.***.***.***
- интернет-маршрутизируемый IP-адрес, назначенный мне провайдером. Но когда я пытаюсь ssh pi@pi.local
, терминал немедленно возвращает: ssh: Could not resolve hostname pi.local: Name or service not known
. Точно так же, когда я пытаюсь ssh pi@raspberrypi.local
, терминал возвращает ssh: Could not resolve hostname raspberrypi.local: Name or service not known
.
Кроме того, когда я пытаюсь ssh pi@raspberrypi
, терминал запрашивает у меня пароль для pi @ raspberrypi. После ввода пароля ничего не происходит; нет сообщения об ошибке, нет обратной связи вообще. В начале пустой строки просто мигает курсор. Мигающий курсор НЕ отображается после приглашения оболочки, т.е. он не появляется после подсказки foo@localhost:~$
. Есть такие же результаты, когда я пытаюсь ssh pi@192.168.2.16
, как когда я пытался ssh pi@raspberrypi
.
Я хочу и думаю, что смогу сделать SSH, указав локальный IP-адрес или имя хоста, вместо того, чтобы полагаться на публичный IP-адрес. Если это возможно, как я могу этого достичь? Кто-то предложил мне добавить запись в файл hosts на компьютере (Ubuntu), чтобы решить проблему с разрешением имен. Я совершенно не разбираюсь в теме файлов хоста и не знаю, как поступить. Может кто-нибудь помочь, пожалуйста?
Можно отредактировать хосты файла, который расположен в и т.д. каталоге:
sudo nano /etc/hosts
В конце файла Вы помещаете следовать строку:
192.168.xxx.xxx pi.local
Remeber, что 192.168.xxx.xxx должен быть IP-адрес Вашей малины.
Существует файл в Вашем / и т.д. каталог, названный хостами. Добавьте записи в файл для разрешения имен хостов. Можно связаться raspberrypi
с 192.168.2.16
, чтобы сделать систему для разрешения raspberrypi
к 192.168.2.16
. По умолчанию существует только одна запись в файле, который является localhost
связан с 127.0.0.1
. Синтаксис довольно прост состоящий из IP-адреса и имени хоста только.
127.0.0.1 localhost
Удостоверяются, что Вы не имеете #
перед Вашей записью, или это будет не что иное как комментарий в коде.
Каждый раз, когда Вы вводите в IP-адресе, он разрешен на системном уровне с помощью этого файла. Если имя хоста не найдено в этом файле, имя хоста передается Вашему шлюзу по умолчанию для своего разрешения. Это продолжает передаваться в зависимости от дизайна сети, в конце которой Вы наконец получаете ошибку hostname could not be resolved
.
необходимо понять эту иерархию и узнать, где, точно, проблема. Так как Вы работаете с LAN, я не думаю, что она была бы так сложной.