Aktivieren von SSH auf RPi ohne Bildschirm - Tastenanschläge für Raspi-Config?


52

Ich habe keinen Bildschirm für meinen Raspberry Pi. Ich möchte eine SSH-Verbindung herstellen, erhalte jedoch die Meldung "Connection Refused" (Verbindung abgelehnt). Daher gehe ich davon aus, dass SSH nicht aktiviert ist.

Wie in anderen Fragen empfohlen, habe ich das Skript boot_enable_ssh.rc auf der SD-Karte aktiviert. Ich habe jedoch kein Startverzeichnis in meinem Betriebssystem (oder es ist nicht über den Kartenleser in meinem iMac sichtbar) - 2012-12-16-wheezy-raspbian.img.

Ich habe auch versucht, die folgenden Befehle über eine USB-Tastatur auszugeben:

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

Aber das hat nicht funktioniert. In einigen Dokumenten sehe ich nun, dass raspi-config das erste ist, was auf einem neu gebooteten RPi erscheint. Könnte mir jemand die Tastenanschläge mitteilen, um SSH über Raspi-Config zu aktivieren? Oder wenn ich auf dem falschen Weg bin, informieren Sie mich bitte. Vielen Dank.

EDIT: Bei dem Versuch , diesem Rat zu folgen https://raspberrypi.stackexchange.com/a/1706/4373 ich sehen bin kein etc - Verzeichnis , wenn die SD - Karte auf meinem iMac Montag. Wenn ich ls vom Terminal aus starte, erhalte ich nur Folgendes:

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

Habe ich das Imaging der SD-Karte vermasselt?


Ist das Einstecken eines Bildschirms vorübergehend keine Option?
Adam Houldsworth

Hallo Adam, ich habe kein Kabel dafür.
Lemmy

Ich habe mein RPi nicht an meinem aktuellen Standort, aber wie ich mich erinnere, wird beim ersten Start von Raspian Wheezy ein Einrichtungsdialog ( sudo raspi-config) angezeigt, in dem Sie SSH aktivieren können. Um dies zu sehen, können Sie möglicherweise die in diesem Video gezeigten Schritte ausführen: youtube.com/watch?v=nXvODj6YpAE ? Ich weiß, es ist ein bisschen primitiver Ansatz, aber ich dachte, ich würde es erwähnen :)
Lasse Christiansen

Antworten:


22

ssh ist installiert, wird jedoch nicht standardmäßig auf Runlevel 2, dem Standard für Raspbian, gestartet.
Umbenennen /etc/rc2.d/ssh/K??sshin/etc/rc2.d/ssh/S02ssh

BEARBEITEN
Die SD-Karte wird mit 2 Partitionen geliefert. Das 1. ist Vfat; der 2. ist ext3. Sie benötigen ein Hilfsprogramm, um von MacOSX aus darauf zugreifen zu können.

Erstes Google-Ergebnis für ext2 macosx:
http://blog.applegrew.com/2011/12/access-ext3ext2-file-system-on-mac-osx-lion-10-7/

Überprüfen Sie auch /var/log/auth.log

UPDATE 2016
Die Standard-Himbeer-Distribution ist jetzt raspbian jessie und wird systemdanstelle von verwendet sysvinit. Die Befehlszeile ist jetzt systemctl enable ssh.socket(obwohl ssh standardmäßig aktiviert sein sollte).

Hinweis: Ich habe immer noch /etc/rc2.d/ssh/S02sshund /var/log/auth.lognach dem Upgrade von Wheezy auf Jessie; Dies kann bei einer neuen Jessie-Installation der Fall sein oder auch nicht.


Danke, mit Hilfe dieses Links kann ich jetzt die Partition sehen. Ich habe jedoch keinen ssh-Ordner in rc2.d. Ich habe eine S02ssh-Datei (sieht aus wie ein Link) im Stammverzeichnis von rc2.d.
Lemmy

OK, die S02ssh-Datei ist ein Link zu init.d / ssh, also nehme ich an, dass SSH bereits aktiviert ist?
Lemmy

K bedeutet töten; S bedeutet Start. Die init.d-Dateien werden abhängig vom Dateinamen mit "stop" oder "start" als Argument angegeben. Auf meinem Bild vom 16. Dezember IIRC war es K.
M Noit

1
OK, ich bin gerade dabei - ich habe versucht, eine Verbindung mit der falschen IP-Adresse herzustellen. Das RPi wurde nicht vom Mac-Terminal angezeigt, aber ich konnte es in meiner Routerkonfiguration sehen. Seite. Daher werde ich diese Antwort als richtig markieren, da sie mir geholfen hat, auf die Lösung hinzuweisen, und sie wird anderen Mac-Benutzern nützlich sein, die sich ihre SD-Karten ansehen. Als Nebenproblem scheint es, dass die aktuelle Distribution standardmäßig SSH aktiviert hat.
Lemmy

1
@Frankenstein: habe meine Antwort aktualisiert, danke für den Hinweis.
M Noit

117

Sie müssen lediglich eine leere Datei mit dem Namen 'ssh' auf der Startpartition (FAT) Ihrer SD-Karte ablegen (ext3 muss nicht eingehängt werden). Getestet mit 2016-11-25-raspbian-jessie-lite.img.

Quelle: https://www.raspberrypi.org/documentation/remote-access/ssh/

Weitere Informationen zum Sicherheitsupdate für November 16: https://www.raspberrypi.org/blog/a-security-update-for-raspbian-pixel/


13
Dies sollte die akzeptierte Antwort ab dem 16. Dezember sein. Ersetzen Sie aber bitte den Link (der das Headless-Setup ohnehin nicht erklärt) durch den jeweiligen Blog-Eintrag raspberrypi.org/blog/a-security-update-for-raspbian-pixel
flaschbier

4
Die Boot-Partition ist die mit einer start.elfDatei. Der verlinkte Blog-Beitrag hat mich verwirrt, als ich ihn das /boot/Verzeichnis nannte
Raphael

1
Dies funktioniert, getestet mit - 2017-04-10-raspbian-jessie
Divyanshu Jimmy

1
Kann bestätigen, dass dies mit 2019-04-08-Raspbian-Stretch
Oenotria

1
Bestätigt mit 2019-07-10-raspbian-buster.
BrainStone

15

Ich hatte die gleichen Probleme mit dem keuchenden Bild.

Das Ziel ist es, den Pi hochzufahren, damit Sie von einem anderen System darauf zugreifen können, ohne jemals einen Monitor und eine Tastatur anschließen zu müssen.

Das Problem ist, dass der SSH-Dienst, wie oben erwähnt, zwar aktiviert ist, aber noch nicht konfiguriert wurde, sodass Sie keine Verbindung herstellen können, selbst wenn das Netzwerk ausgeführt wird. Hier sind die Aufgaben, um dies zum Laufen zu bringen:

  1. Legen Sie das Bild auf die SD-Karte. (An anderer Stelle abgedeckt.)

  2. Stellen Sie sicher, dass Sie die TCP / IP-Adresse nach dem Start Ihres Pi ermitteln können.

    Tipp: Sehen Sie in Ihrem Router nach, welche Adressen zugewiesen wurden.

  3. Stellen Sie sicher, dass sshausgeführt und Verbindungen zugelassen werden . So habe ich es gemacht:

    ein. Hängen Sie die zweite SD-Kartenpartition ein, die große mit dem etcVerzeichnis.

    b. Erstellen Sie eine Dateietc/SSHFLAG

    c. Fügen Sie den folgenden Code etc/rc.localdirekt über der exit 0Zeile ein.

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

    Die Idee ist, dass wenn Ihr Pi bootet, die SSHFLAG-Datei es veranlasst, ssh neu zu konfigurieren (die Schlüssel neu zu generieren und den Dienst zu starten), die Flag-Datei zu entfernen, so dass es nur einmal vorkommt, und Ihr System neu zu starten. Hat für mich gearbeitet, YMMV


Schöne Lösung für das Problem.
0xC0000022L

Danach musste ich /etc/init.d/ssh startin die /etc/rc.localDatei hinzufügen , damit der SSH-Dienst gestartet wird.
Iván Pérez

Iván: Ich bin mir nicht sicher, warum meine Lösung für Sie fehlgeschlagen ist. Die wahrscheinlichsten Erklärungen sind a) Tippfehler oder b) Änderungen am rpi ssh-Paket. Wahrscheinlich nicht wert das Debuggen. Ihre Lösung funktioniert möglicherweise nicht, wenn der ssh-Dienst noch nicht konfiguriert wurde (dh wenn die Schlüssel nicht generiert wurden).
19.

Ich hatte genau die gleiche Erfahrung wie Ivan. ssh start hat funktioniert.
Robert3452

7

Für das Headless-Setup kann SSH aktiviert werden, indem eine Datei mit dem Namen 'ssh' ohne Erweiterung auf der Boot-Partition der SD-Karte abgelegt wird.


1
Nicht "kann sein", sondern muss sein und seit November 2016. Die Frage ist ab Januar 2013.
Techraf

3

Aus meiner gestrigen Erfahrung: 2012-12-16-wheezy-raspbian.img (empfohlen als "offizielle Distribution") hat SSH standardmäßig aktiviert. Laden Sie es von http://www.raspberrypi.org/downloads herunter

Sie müssen nichts auf der Karte bearbeiten oder raspi-config im "blinden Modus" starten.

Stellen Sie einfach sicher, dass Sie eine korrekte IP-Adresse verwenden. Verwenden Sie das DHCP-Webinterface Ihres Routers, um die IP-Adresse aus der Tabelle abzurufen. benutze Kabel, kein WiFi; Stellen Sie sicher, dass die SD-Karte in Ordnung ist (Sie können eine andere SD-Karte ausprobieren). Vergewissern Sie sich, dass das Dateisystem der SD-Karte in Ordnung ist (versuchen Sie erneut, das Bild zu schreiben und vergessen Sie nicht, die Karte ordnungsgemäß auszuwerfen).


Während das Wesentliche wahr ist, sind die Details nicht. sshist standardmäßig nicht aktiviert. Stattdessen regenerate_ssh_host_keyswird aktiviert, was dann sshnach dem Generieren der Host-Schlüssel aktiviert und sich selbst deaktiviert. Natürlich ist der Nettoeffekt der gleiche.
0xC0000022L

2

Ich bin über Google auf diese Seite gekommen, nachdem ich pi für ein paar Monate nicht verwendet habe. Nach dem letzten Update ist ssh standardmäßig deaktiviert.

Für alle, die eine kopflose Neuinstallation von Jessie durchführen:

Pi

Himbeere

sudo nano / boot / ssh

Test [oder irgendein anderer Text]

[Strg-x drücken]

y

sudo shutdown -r jetzt

Getan! Alles Gute.

Denken Sie daran, Ihr Passwort zu ändern und den Benutzer 'pi' über ssh zu deaktivieren.


1
Warum sollte jemand dies tun, wenn /boot/sshes mit demselben Computer erstellt werden kann, mit dem Sie die SD-Karte geflasht haben? Wie melden Sie sich an, wenn Sie den Standardbenutzer deaktivieren?
Dmitry Grigoryev

1

Sie haben mehrere Partitionen auf Ihrer SD-Karte und die Dateien, die Sie von Ihrem Mac sehen, stammen von der Partition, die wie /boot/auf der Raspberry gemountet ist .

Sie sollten eine andere Partition auf der SD-Karte haben, auf der die Root- /Partition (auch bekannt als ) mit allem , was darin enthalten ist, gespeichert wird /etc/.... Stellen Sie sicher, dass die EXT3-Dateisystemunterstützung auf Ihrem Mac aktiviert ist, damit dieses auf Mac OS X verfügbar ist.


1

Ansonsten habe ich diese Datei auf meine Boot-Partition gestellt und SSH automatisch gestartet. Link zu boot_enable_ssh.rc

Tatsächlich habe ich gerade eine Debian-Modifikation für das RPi im Netz gefunden, bei der SSH standardmäßig aktiviert war. Ich habe die Boot-Partition überprüft und diese Datei gefunden!


1
tib20 hat die Antwort zum Aktivieren von SSH, wenn Sie es verloren haben. Legen Sie einfach die Datei, die er verlinkt hat, direkt in der Boot-Partition ab und es funktioniert wunderbar! Danke für das. Ich hatte meine SSH verloren, nachdem ich den Hostnamen auf dem Pi geändert hatte.

1

Ich höre viele Probleme mit der Funktion "Ich konnte sie im Netzwerk nicht finden". Ich werde vorschlagen, dies auszuführen, um alle Maschinen mit offenem ssh-Port zu finden.

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

Dies war für mich sehr wichtig, da ich kein Administratorkennwort für den Router habe, mit dem ich mich verbinde. Nun werde ich sagen, dass ich selbst nachdem ich die IP-Adresse meines Himbeer-Pi identifiziert habe, immer noch keine Verbindung herstellen konnte, obwohl nmap angibt, dass der Port offen war. Ich bekomme sofort eine Nachricht von ...

Connection closed by 192.168.0.116

Ich habe das immer noch nicht herausgefunden.


1

Nur zum Aktualisieren gibt es eine viel einfachere Methode, um dies zu tun.

In Raspbian ist der SSH-Server seit der Version vom November 2016 standardmäßig deaktiviert. > Sie müssen es manuell aktivieren. Dies geschieht mit raspi-config:

Geben Sie sudo raspi-config in das Terminal ein, wählen Sie zuerst Schnittstellenoptionen aus, navigieren Sie dann zu ssh, drücken Sie die Eingabetaste und wählen Sie SSH-Server aktivieren oder deaktivieren.

Für das Headless-Setup kann SSH aktiviert werden, indem eine Datei mit dem Namen 'ssh' ohne Erweiterung auf der Startpartition der SD-Karte abgelegt wird.

Quelle

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.