Я пытаюсь подключиться к Ubuntu через SSH из OS X, и я сделал тот же шаг, как описано на этой странице ( https://help.ubuntu.com/10.04/serverguide/openssh-server. HTML ). После установки я попытался подключиться в форме username@ip_address
, затем это было успешно, и я смог быть в Ubuntu из OS X Terminal (на этот раз я использовал порт 22). Однако, когда я попытался подключиться к Ubuntu по SSH в форме username@hostname
, я не смог, и произошла ошибка ssh: Could not resolve hostname my_user_name: nodename nor servname provided, or not known
. Я также попытался подключиться через порт 2222, изменив /etc/ssh/sshd_config
, но затем тоже не получилось, из-за ошибки debug1: connect to address my_ip_address port 22: Connection refused
(на этот раз я попытался подключиться по IP-адресу).
Так что я думаю, что последняя проблема проистекает из того факта, что я должен внести какие-то изменения также в OS X, но не знаю, где и как это сделать, и не знаю, во-первых, это правда. [ 119] 1110] Первый вопрос более раздражает, так как я не уверен, что могу правильно его понять. Я использовал hostname
в качестве значения, полученного при запуске hostname
в Ubuntu Terminal ... но так ли это? И когда я искал проблему в Интернете, я знал, что это связано с проблемой DNS ... но не знал, что это такое и как ее исправить ...
Спасибо.
В Терминале на OS X при использовании ssh для установки удаленного соединения с использованием имени хоста в локальной сети добавьте суффикс .local
, так что команда читает ssh username@hostname.local
Если вам нужно переопределить порт по умолчанию 22, как ваш пример использования порта 2222, добавьте -p 2222
к команде. Вы также можете установить это в диалоговом окне «Новое удаленное соединение ...» терминала (Command-Shift-K) для быстрого доступа.
Когда вы запустили ssh username@hostname
, компьютер, с которого вы подключаетесь (ваша Mac OS), не знает IP этого hostname
, вот почему это говорит вам ssh: Could not resolve hostname
. Итак, вам нужно сказать вашему Mac, что это hostname
это ip_address
. Чтобы сделать это на вашем Mac, эта страница расскажет вам, как это сделать. По сути, вам нужно sudo nano /private/etc/hosts
(sudo nano /etc/hosts
в Mac OS X 10.7 и более поздних версиях) и добавить строку в конец файла следующим образом:
ip_address hostname
с фактическим IP и имя хоста вашего компьютера с Ubuntu. После этого нажмите Control + O, затем Enter, затем Control + X, чтобы сохранить и закрыть файл. Затем выполните dscacheutil -flushcache
, чтобы изменения вступили в силу. Теперь, когда вы делаете ssh username@hostname
, это должно работать.
И про этот порт 2222:
Вы правы, вам нужно внести некоторые изменения в Mac OS ... ну, это всего лишь пара символов. Когда вы делаете ssh username@hostname
, то, что на самом деле происходит в фоновом режиме, это ssh username@hostname -p22
, потому что порт 22 является портом SSH по умолчанию. Но если вы знаете, что компьютер, к которому вы пытаетесь подключиться, использует другой порт, вам придется указать его вручную. Итак, поскольку вы изменили порт в Ubuntu на 2222, вам нужно будет сделать ssh username@hostname -p2222
. Это не имеет ничего общего с использованием hostname
или ip_address
.