Odmowa połączenia ssh na Raspberry Pi [zamknięte]

93

Zdaję sobie sprawę, że to pytanie zostało już zadane na różne sposoby, jednak wydaje się, że żaden z napotkanych przeze mnie sposobów nie zadziałał, aby rozwiązać ten problem, więc oto jest:

Próbuję połączyć się z moją instalacją Raspberry Pi 3 Raspbian przez ssh na moim laptopie, ale chociaż mam poprawny adres IP, ciągle otrzymuję błąd:

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

Jest to niezwykłe, ponieważ kiedy próbuję pingować ten adres, działa dobrze. Czy jest coś, co mogę spróbować dowiedzieć się, co jest nie tak?

Pamiętaj też, że jestem stosunkowo niedoświadczony w bash w Linuksie, więc byłoby bardzo mile widziane włączenie jakichkolwiek konkretnych poleceń z opisem ich działania.

Matt
źródło
Stack Overflow to witryna zawierająca pytania dotyczące programowania i programowania. To pytanie wydaje się być niezwiązane z tematem, ponieważ nie dotyczy programowania ani programowania. Zobacz, o jakie tematy mogę zapytać w Centrum pomocy. Być może lepszym miejscem do zadawania pytań będzie Super User lub Unix & Linux Stack Exchange . Zobacz też Gdzie mogę zadawać pytania dotyczące operacji deweloperskich?
jww
Istnieje również Raspberry Pi Stack Exchange .
e0k
7
Bardzo dobre pytanie.
Richard de Ree

Odpowiedzi:

203

Najwyraźniej serwer SSH na Raspbian jest teraz domyślnie wyłączony . Jeśli żaden serwer nie nasłuchuje połączeń, nie będzie ich akceptował. Możesz ręcznie włączyć serwer SSH zgodnie z tym samouczkiem raspberrypi.org :

Począwszy od wydania z listopada 2016 r., Raspbian ma domyślnie wyłączony serwer SSH.

Istnieje teraz wiele sposobów, aby to włączyć. Wybierz jeden :

Z pulpitu

  1. Uruchom Raspberry Pi Configurationz Preferencesmenu
  2. Przejdź do Interfaceszakładki
  3. Wybierz EnabledobokSSH
  4. Kliknij OK

Z terminala z raspi-config

  1. Wejdź sudo raspi-configw okno terminala
  2. Wybierz Interfacing Options
  3. Przejdź do i wybierz SSH
  4. Wybierać Yes
  5. Wybierz Ok
  6. Wybierać Finish

Uruchom usługę SSH z systemctl

sudo systemctl enable ssh
sudo systemctl start ssh

Na bezgłowym Raspberry Pi

W przypadku konfiguracji bezgłowej SSH można włączyć, umieszczając plik o nazwie ssh, bez żadnego rozszerzenia, na partycji rozruchowej karty SD. Kiedy Pi uruchamia się, szuka sshpliku. Jeśli zostanie znaleziony, protokół SSH jest włączony, a plik jest usuwany. Zawartość pliku nie ma znaczenia: może zawierać tekst lub w ogóle nic.

e0k
źródło
4
Dziękuję, to zadziałało idealnie! To dość dziwna decyzja o domyślnym wyłączeniu ssh, biorąc pod uwagę, że jest to jeden z głównych sposobów interfejsu urządzenia ...
Matt
11
Jakiś sposób na zrobienie tego w konfiguracji bezgłowej? Samouczek mówi, aby umieścić plik o nazwie „ssh” w katalogu rozruchowym, ale to nie działa.
Jeff,
12
Dla innych, którzy mogą to znaleźć, problem polega na tym, że jeśli RPi nie zostanie poprawnie ponownie uruchomione przed pierwszym udanym połączeniem SSH, karta SD będzie musiała zostać ponownie odtworzona. Gdy to zrobiłem i dodałem pusty plik „ssh”, zadziałało.
Jeff
8
Wow, to głupie posunięcie ze strony społeczności RPi. Więc teraz, nawet jeśli pobiorę wersję bez pulpitu, nadal muszę skonfigurować pulpit, aby włączyć SSH? Co za ból.
Cerin
2
Byłoby bardziej sensowne, gdyby plik ssh zawierał nazwę użytkownika i hasło do włączenia
Florian F
-6

Myślę, że pi ma domyślnie włączony serwer ssh. Moje zawsze działały po wyjęciu z pudełka. Zależy od wersji systemu operacyjnego.

W większości przypadków, gdy mi się to nie udaje, jest to spowodowane zmianą adresu IP. Być może pingujesz teraz coś innego? Czasami po prostu odmawiają połączenia i wymagają ponownego uruchomienia.

Ashley Duncan
źródło
Wygląda na to, że jest teraz domyślnie wyłączony po wyjęciu z pudełka. Błąd tutaj to „odmowa połączenia”, a nie opóźnienie, po którym następuje „przekroczenie limitu czasu operacji” - co mogłoby wystąpić, gdyby zmienił się adres IP. Przyznano, że inne urządzenie mogło odebrać IP i odmawiać połączenia.
Ed_