В соединении ssh отказано на Raspberry Pi [закрыто]

93

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

Я пытаюсь подключиться к моей установке raspberry pi 3 raspbian через ssh на своем ноутбуке, но, хотя у меня правильный IP-адрес, я продолжаю получать сообщение об ошибке:

ssh: connect to host xxx.xxx.xx.x port 22: connection refused.

Это необычно, потому что, когда я пытаюсь пропинговать этот адрес, он работает нормально. Есть ли что-нибудь, что я могу попытаться выяснить, что не так?

Также имейте в виду, что я относительно неопытен с bash в Linux, поэтому включение любых конкретных команд с описанием того, что они делают, было бы очень признательно.

Мэтт
источник
Stack Overflow - это сайт для вопросов по программированию и разработке. Этот вопрос кажется не по теме, потому что он не о программировании или разработке. См. Какие темы можно задать здесь, в Справочном центре. Возможно, лучше спросить Super User или Unix & Linux Stack Exchange . Также см. Где я могу задать вопросы о Dev Ops?
jww
Также существует обмен Raspberry Pi Stack Exchange .
e0k
7
Очень хороший вопрос.
Ричард де Ри,

Ответы:

203

Судя по всему, SSH-сервер в Raspbian теперь отключен по умолчанию . Если сервер не прослушивает соединения, он их не примет. Вы можете вручную включить SSH-сервер в соответствии с этим руководством по raspberrypi.org :

Начиная с выпуска от ноября 2016 года, в Raspbian по умолчанию отключен SSH-сервер.

Теперь есть несколько способов включить его. Выберите один :

С рабочего стола

  1. Запуск Raspberry Pi Configurationиз Preferencesменю
  2. Перейдите на Interfacesвкладку
  3. Выбрать Enabledрядом сSSH
  4. Нажмите OK

С терминала с raspi-config

  1. Войдите sudo raspi-configв окно терминала
  2. Выбрать Interfacing Options
  3. Найдите и выберите SSH
  4. выбирать Yes
  5. Выбрать Ok
  6. выбирать Finish

Запустите службу SSH с systemctl

sudo systemctl enable ssh
sudo systemctl start ssh

На безголовом Raspberry Pi

Для автономной настройки SSH можно включить, поместив файл с именем sshбез какого-либо расширения в загрузочный раздел SD-карты. Когда Pi загружается, он ищет sshфайл. Если он найден, SSH включается, и файл удаляется. Содержание файла не имеет значения: он может содержать текст или вообще ничего.

e0k
источник
4
Спасибо, это сработало отлично! Это довольно странное решение отключить ssh по умолчанию, учитывая, что это один из основных способов взаимодействия с устройством ...
Мэтт
11
Любой способ сделать это в конфигурации без головы? В руководстве говорится, что нужно поместить файл с именем «ssh» в каталог загрузки, но это не работает.
Джефф
12
Для других, которые могут это обнаружить, проблема заключается в том, что если RPi не перезагружается должным образом перед первым успешным SSH-соединением, необходимо будет повторно создать образ SD-карты. Как только я сделал это и добавил пустой файл «ssh», все заработало.
Джефф
8
Вау, это глупый ход со стороны сообщества RPi. Так что теперь, даже если я скачаю версию без рабочего стола, мне все равно нужно настроить рабочий стол, чтобы включить SSH? Какая боль.
Cerin
2
Было бы больше смысла, если бы файл ssh содержал имя пользователя и пароль для включения
Флориан Ф
-6

Я думаю, что у pi по умолчанию включен ssh-сервер. Мои всегда работали из коробки. Зависит от версии операционной системы.

В большинстве случаев, когда это не удается для меня, это связано с изменением IP-адреса. Возможно, вы сейчас пингуете что-то другое? Также иногда они просто отказываются подключаться и требуют перезагрузки.

Эшли Дункан
источник
Похоже, что он отключен по умолчанию из коробки. Ошибка здесь - «соединение отклонено», а не задержка, за которой следует «тайм-аут операции», который может произойти, если IP-адрес изменится на вас. Допустим, другое устройство могло взять IP и отказать в соединении.
Ed_