Włączanie SSH na RPi bez ekranu - naciśnięcia klawiszy dla raspi-config?

52

Nie mam ekranu dla mojego Raspberry Pi. Chcę włączyć SSH, ale dostaję odmowę połączenia, więc zakładam, że SSH nie jest włączony.

Jak zalecono w innych pytaniach, zastanawiałem się nad włączeniem skryptu boot_enable_ssh.rc na karcie SD. Jednak nie mam katalogu rozruchowego w moim systemie operacyjnym (lub nie jest widoczny przez czytnik kart w moim komputerze iMac) - 2012-12-16-wheezy-raspbian.img.

Próbowałem także wydać następujące polecenia za pomocą klawiatury USB:

pi [enter]
raspberry [enter]
sudo /etc/init.d/ssh start [enter]
raspberry [enter]

Ale to nie zadziałało. Teraz w niektórych dokumentach widzę, że raspi-config to pierwsza rzecz na nowo uruchomionym RPi. Czy ktoś mógłby mi powiedzieć naciśnięcia klawiszy, aby włączyć SSH przez raspi-config? Lub jeśli jestem na złym torze, proszę o poradę. Dzięki.

EDYCJA: Próbując postępować zgodnie z tą radą https://raspberrypi.stackexchange.com/a/1706/4373 Nie widzę katalogu itp. Podczas montażu karty SD na moim komputerze iMac. Jeśli uruchomię ls z terminala, otrzymam tylko:

bootcode.bin            fixup.dat               kernel.img            start.elf
cmdline.txt             fixup_cd.dat            kernel_cutdown.img      start_cd.elf
config.txt              issue.txt               kernel_emergency.img

Czy zepsułem obrazowanie karty SD?

Lemmy
źródło
Czy podłączenie ekranu tymczasowo nie jest opcją?
Adam Houldsworth,
Cześć Adam, nie mam na to kabla.
Lemmy,
Nie mam RPi w bieżącej lokalizacji, ale, jak pamiętam, po pierwszym uruchomieniu Raspian Wheezy wyświetla okno dialogowe konfiguracji ( sudo raspi-config), w którym można włączyć SSH. Aby to zobaczyć, być może możesz wykonać czynności przedstawione w tym filmie: youtube.com/watch?v=nXvODj6YpAE ? Wiem, że to trochę prymitywne podejście, ale pomyślałem, że wspomnę o tym :)
Lasse Christiansen

Odpowiedzi:

22

ssh jest zainstalowany, ale domyślnie nie jest uruchamiany na poziomie 2, domyślnym dla raspbian.
Zmień nazwę /etc/rc2.d/ssh/K??sshna/etc/rc2.d/ssh/S02ssh

EDYCJA
Karta SD ma 2 partycje. Pierwszy to vfat; 2. to ext3. Potrzebujesz narzędzia, aby uzyskać do niego dostęp z macosx.

Pierwszy wynik Google dla ext2 macosx:
http://blog.applegrew.com/2011/12/access-ext3ext2-file-system-on-mac-osx-lion-10-7/

Sprawdź również /var/log/auth.log

AKTUALIZACJA 2016
Domyślną dystrybucją malin jest teraz raspbian jessie i używa systemdzamiast niej sysvinit. Wiersz poleceń jest teraz systemctl enable ssh.socket(chociaż ssh powinien być domyślnie włączony).

Uwaga: nadal mam /etc/rc2.d/ssh/S02sshi /var/log/auth.logpo aktualizacji z wheezy do jessie; może tak być, ale nie musi tak być w przypadku nowej instalacji jessie.

M. Noit
źródło
Dzięki, dzięki temu linkowi mogę teraz zobaczyć partycję. Nie mam jednak folderu ssh w rc2.d. Mam plik S02ssh (wygląda jak link) w katalogu głównym rc2.d.
Lemmy,
OK, plik S02ssh jest linkiem do init.d / ssh, więc zakładam, że SSH jest już włączony?
Lemmy,
K oznacza zabijanie; S oznacza start. pliki init.d są pozyskiwane z argumentem „stop” lub „start” jako argumentu w zależności od nazwy pliku. Na moim obrazie z 16 grudnia IIRC był to K.
M Noit
1
OK, już jestem - próbowałem połączyć się z niewłaściwym adresem IP. RPi nie wyświetlało się z terminala Mac, ale widziałem to z konfiguracji routera. strona. Oznaczę więc tę odpowiedź jako poprawną, ponieważ pomogła mi wskazać rozwiązanie i będzie przydatna dla innych użytkowników komputerów Mac patrząc na swoje karty SD. Na marginesie wydaje się, że bieżąca dystrybucja ma domyślnie włączone SSH.
Lemmy,
1
@Frankenstein: zaktualizowałem moją odpowiedź, dziękuję za pisanie.
M Noit
117

Wystarczy umieścić pusty plik o nazwie „ssh” na partycji rozruchowej (FAT) karty SD (nie trzeba montować ext3). Testowane z 2016-11-25-raspbian-jessie-lite.img.

Źródło: https://www.raspberrypi.org/documentation/remote-access/ssh/

Więcej informacji o aktualizacji zabezpieczeń z listopada 2016: https://www.raspberrypi.org/blog/a-security-update-for-raspbian-pixel/

Yahor
źródło
13
To powinna być zaakceptowana odpowiedź z grudnia '16. Ale proszę zamienić link (który i tak nie wyjaśnia konfiguracji bezgłowej) odpowiednim wpisem na blogu raspberrypi.org/blog/a-security-update-for-raspbian-pixel
flaschbier
4
Partycja rozruchowa to ta z start.elfplikiem. Link do posta na blogu pomylił mnie, nazywając go /boot/katalogiem
raphael
1
to działa, testowane z - 2017-04-10-raspbian-jessie
Divyanshu Jimmy
1
Potwierdzam, że działa to z odcinkiem raspbian-stretch
2019-04-08
1
Potwierdzony z 2019-07-10-raspbian-buster.
BrainStone
15

Miałem te same problemy z obrazem wheezy.

Celem jest mieć bagażnik Pi tak można ssh do niego z innego systemu, bez konieczności kiedykolwiek podłączyć monitor i klawiaturę.

Problemem jest to, że podczas gdy usługa SSH jest włączony, jak wspomniano powyżej, nie zostało jeszcze skonfigurowane, więc nie można podłączyć nawet jeśli sieci jest uruchomiony. Oto zadania, aby uruchomić to:

  1. Umieść obraz na karcie SD. (Objęte gdzie indziej.)

  2. Upewnij się, że możesz określić adres TCP / IP po uruchomieniu Pi.

    wskazówka: spójrz na router, aby zobaczyć, jakie adresy zostały przypisane.

  3. Upewnij się, że sshuruchomi się i zezwoli na połączenia . Oto jak to zrobiłem:

    za. Zamontuj drugą partycję karty SD, dużą z etckatalogiem.

    b. Utwórz pliketc/SSHFLAG

    do. Wstaw następujący kod do linii etc/rc.localtuż nad exit 0linią.

    if [ -e /etc/SSHFLAG ]; then
      /usr/sbin/update-rc.d -f ssh defaults
      /bin/rm /etc/SSHFLAG
      /sbin/shutdown -r now
    fi
    

    Chodzi o to, że gdy bootuje się Pi, plik SSHFLAG powoduje jego zmianę konfiguracji ssh (regeneracja kluczy i uruchomienie usługi), usunięcie pliku flagi, aby zdarzyło się to tylko raz, i zrestartowanie systemu. Pracował dla mnie, YMMV

północny
źródło
Dobre rozwiązanie problemu.
0xC0000022L
Następnie musiałem dodać /etc/init.d/ssh startdo /etc/rc.localpliku, aby usługa SSH została uruchomiona.
Iván Pérez,
Iván: Nie jestem pewien, dlaczego moje rozwiązanie zawiodło dla ciebie. Najbardziej prawdopodobne wyjaśnienia to a) literówka lub b) zmiany w pakiecie rpi ssh. Prawdopodobnie nie warto debugować. Twoje rozwiązanie może nie działać, jeśli usługa ssh nie została jeszcze skonfigurowana (tj. Jeśli klucze nie zostały wygenerowane).
północ
Miałem dokładnie takie same doświadczenia jak Ivan. ssh zacząć działać.
Robert3452,
7

W przypadku konfiguracji bezgłowej SSH można włączyć, umieszczając plik o nazwie „ssh”, bez żadnego rozszerzenia, na partycji rozruchowej karty SD.

Dan
źródło
1
Nie „może być”, ale musi być i od listopada 2016 r. Pytanie pochodzi ze stycznia 2013 r.
techraf
3

Z mojego wczorajszego doświadczenia: 2012-12-16-wheezy-raspbian.img (sugerowane jako „oficjalna dystrybucja”) ma domyślnie włączone SSH. Pobierz z http://www.raspberrypi.org/downloads

Nie musisz niczego edytować na karcie ani uruchamiać raspi-config w „trybie niewidomym”.

Upewnij się tylko, że używasz prawidłowego adresu IP. Użyj routera internetowego interfejsu DHCP, aby uzyskać adres IP ze stołu; użyj kabla, a nie WiFi; upewnij się, że karta SD jest OK (możesz wypróbować inną kartę SD); upewnij się, że system plików karty SD jest w porządku (spróbuj ponownie zapisać obraz i nie zapomnij poprawnie „wysunąć” karty).

kolontsov
źródło
Chociaż sedno jest prawdziwe, szczegóły nie są. sshnie jest domyślnie włączony. Zamiast tego regenerate_ssh_host_keysjest włączony, który następnie włączy się sshpo wygenerowaniu kluczy hosta i sam się wyłączy. Oczywiście efekt netto jest taki sam.
0xC0000022L
2

Dostałem się na tę stronę przez Google po kilku miesiącach nieużywania pi. Po ostatniej aktualizacji ssh jest domyślnie wyłączony.

Z korzyścią dla każdego, kto robi bezproblemową czystą instalację Jessie:

Liczba Pi

malina

sudo nano / boot / ssh

test [lub dowolny inny tekst]

[naciśnij ctrl-x]

y

sudo zamknięcie -r teraz

Gotowy! Wszystkiego najlepszego.

Pamiętaj, aby zmienić hasło i wyłączyć użytkownika „pi” przez ssh.

Jonathan Lee
źródło
1
Dlaczego ktoś miałby to robić, skoro /boot/sshmożna go utworzyć przy użyciu tego samego komputera, którego użyto do flashowania karty SD? Ponadto, jeśli wyłączysz domyślnego użytkownika, jak się zalogujesz?
Dmitrij Grigoriew
1

Na karcie SD masz wiele partycji, a pliki, które widzisz z komputera Mac, to pliki z partycji zamontowanej jak /boot/na Raspberry.

Powinieneś mieć inną partycję na karcie SD, która przechowałaby /partycję root (aka ), ze wszystkimi /etc/...rzeczami w niej zawartymi. Pamiętaj, aby włączyć obsługę systemu plików EXT3 na komputerze Mac, aby był dostępny w systemie Mac OS X.

Mickaël Le Baillif
źródło
1

W przeciwnym razie właśnie umieściłem ten plik na partycji rozruchowej i SSH uruchomił się automatycznie. Link do boot_enable_ssh.rc

W rzeczywistości właśnie znalazłem modyfikację Debiana dla RPi w sieci, która domyślnie miała włączone SSH. Sprawdziłem partycję rozruchową i znalazłem ten plik!

Tiwenty
źródło
1
tib20 ma odpowiedź na włączenie SSH, jeśli go zgubiłeś. Po prostu upuść plik, który podlinkował bezpośrednio do partycji rozruchowej i działa pięknie! Dziękuję za to. Straciłem SSH po zmianie nazwy hosta na pi.
1

Słyszałem wiele problemów „nie mogłem znaleźć w sieci”. Sugeruję uruchomienie tego, aby znaleźć wszystkie maszyny z otwartym portem ssh.

nmap 192.168.0.1/24 -p 22
# change the 192.168.0.1 part to match the first 3 octets of your ip address
# as seen via: ifconfig

Było to dla mnie bardzo ważne, ponieważ nie mam hasła administratora do routera, z którym się łączę. Teraz powiem, że nawet kiedy zidentyfikowałem adres IP mojego malinowego pi, nadal nie mogłem się połączyć, mimo że nmap mówi, że port był otwarty. Natychmiast dostaję wiadomość o ...

Connection closed by 192.168.0.116

Nadal tego nie rozgryzłem.

Bruno Bronosky
źródło
1

Aby zaktualizować, istnieje znacznie prostsza metoda wykonania tego.

Od wersji z listopada 2016 r. Raspbian domyślnie wyłącza serwer SSH. > Musisz włączyć go ręcznie. Odbywa się to za pomocą raspi-config:

Wpisz sudo raspi-config w terminalu, najpierw wybierz Opcje interfejsów, a następnie> przejdź do ssh, naciśnij Enter i wybierz Włącz lub wyłącz serwer ssh.

W przypadku konfiguracji bezgłowej SSH można włączyć, umieszczając plik o nazwie „ssh”, bez żadnego> rozszerzenia, na partycji rozruchowej karty SD.

Źródło

CoderX
źródło