Eine ähnliche Frage wurde bereits gestellt: Wie richte ich Raspberry Pi ohne Monitor ein?
Angesichts der Tatsache, dass die akzeptierte Antwort keine angemessene Lösung zu bieten scheint und die Fragestellung ein gewisses Maß an Unklarheit aufweist, gehe ich davon aus, dass die ursprüngliche Frage falsch konstruiert wurde und meine Frage nicht lautet. t ein genaues Duplikat.
Ich führe die erstmalige Einrichtung eines Pi durch. Ich habe keinen Monitor oder keine Tastatur, sondern möchte stattdessen einen angeschlossenen Laptop verwenden, um die Arbeit zu erledigen. Ich möchte keinen Monitor oder keine Tastatur kaufen und sie nur herum sitzen lassen, wenn sie vom Pi benötigt werden. Ich könnte sie ausleihen, aber ich plane, in Zukunft weitere Pis zu kaufen, und möchte sie nicht jedes Mal ausleihen müssen.
Ich habe eine statische IP-Adresse auf dem Pi durch Bearbeiten der cmdline.txt
Datei festgelegt. (Auf dem Pi wird die neueste Version von Raspbian ausgeführt.)
ip=10.0.0.20
Ich habe der eth
Schnittstelle meines Laptops eine entsprechende statische IP-Adresse zugewiesen. (Auf dem Laptop läuft Ubuntu.)
ip ad add 10.0.0.10/24 dev eth0
Ich habe die beiden mit einem Ethernet-Kabel verbunden und kann den Pi erfolgreich von meinem Laptop aus anpingen.
Was ich nicht tun kann , ist ssh
mit dem Pi. Ich erhalte eine Antwort , bei der die Verbindung abgelehnt wurde :
richard@richard-ThinkPad-X220:~$ ssh -vvv [email protected]
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 10.0.0.20 [10.0.0.20] port 22.
debug1: connect to address 10.0.0.20 port 22: Connection refused
ssh: connect to host 10.0.0.20 port 22: Connection refused
Eine Sache, die dies implizieren würde, ist, dass sshd
es noch nicht auf dem Pi läuft.
Die offiziellen Dokumente geben an, dass sie sshd
standardmäßig ausgeführt werden. Es ist jedoch möglich, dass während eines ersten Startvorgangs andere Dinge (z. B. Eingabeaufforderungen, die auf Benutzereingaben warten) den Start auf einer bestimmten Ebene blockieren, was bedeutet, dass wir den Punkt, an dem sshd
gestartet wird, nicht erreichen ?
Wohin gehe ich von hier aus? (Nicht "in die Läden, um einen Monitor zu kaufen" ...)
Ist das, was ich versuche, tatsächlich möglich?
Bearbeiten:
Ich habe jetzt die in den Antworten auf den folgenden Beitrag genannten Methoden ausprobiert, aber ohne Erfolg: SSH auf RPi ohne Bildschirm aktivieren - Tastenanschläge für raspi-config?
Insbesondere die Sicherstellung, dass das SSH-Init-Skript auf Runlevel 2 ausgeführt wird, erlaubte mir immer noch keine Verbindung.
ssh [email protected]
Ihnen zu verbinden. Sie scheinen nicht zu denken, dassssh
es wichtig ist , uns zu sagen, wie Sie es tatsächlich versuchen .ping [email protected]
. Dies funktioniert jedoch nicht, daraspberrypi.local
es sich um einen unbekannten Host handelt. Wäre es nicht erforderlich, einen Eintrag/etc/hosts
auf meinem Laptop vorzunehmen, um das Problem beheben zu können?sudo nmap 10.0.0.20
auf dem Laptop laufen . Wenn angezeigt wird, dass Port 22 geöffnet ist, wird SSH ausgeführt, andernfalls wird SSH nicht ausgeführt. Es wird es nicht reparieren, aber es wird Ihnen sagen, was passiert.Antworten:
Auf dem neuesten Bild, das ich habe, 2015-11-21-raspbian-jessie- lite .img, ist dies nicht wahr. Debian / Raspbian Jessie verwendet derzeit systemd für init, aber es ist eine Art hybrider rückwärts-SysV-kompatibler Mechanismus eingebaut, und ich bemerke auf dem laufenden System, das ich aus diesem Image erstellt habe (mit einem Bildschirm und einer Tastatur für die Ersteinrichtung). Wenn sshd jetzt aktiviert ist, gibt es einen Trigger sowohl im systemd- als auch im alten SysV-
rc.d
Verzeichnis. Vermutlich funktioniert der abwärtskompatible Mechanismus so (ich habe ssh über systemd aktiviert). In jedem Fall wird nur einesshd
Instanz mit einer PPID von 1 ausgeführt.Für das funktionierende System gibt es einen Eintrag in
/etc/rc[2,3,4,5].d
fürS02ssh
(die genaue Prioritätsnummer 02 wird festgelegt, wenn der Dienst aktiviert ist und variieren kann). Es gibt auch eine/etc/systemd/system/multi-user.target.wants/ssh.service
.Im Basisbild jedoch ...
... Es gibt keinen Eintrag in
/etc/systemd
und es gibt einenK01ssh
für Runlevel 2, 3, 4, 5. Das garantiert so ziemlich, dass kein sshd läuft.Mein Vorschlag ist, zuerst nur den SysV-Eintrag festzulegen. Aus dem
etc
Verzeichnis der zweiten Partition auf der SD-Karte:Stellen Sie sicher, dass die Links vorhanden sind und auf die richtige Stelle mit verweisen
stat
. Ich glaube, das sollte ausreichen und Sie können jetzt versuchen, das System zu booten. Wenn ja, nachdem Sie diese Links entfernt und ausgeführt habensystemctl enable ssh
, überprüfen Sie, ob die Links neu erstellt wurden (denken Sie daran, dass die Priorität möglicherweise unterschiedlich ist).Wenn immer noch "Verbindung abgelehnt" angezeigt wird, erstellen Sie einen Link von
[SD_rootfs]/lib/systemd/system/ssh.service
bis[SD_rootfs]/etc/systemd/default.target.wants/ssh.service
und versuchen Sie es erneut.quelle
K01ssh
imrc2.d
Verzeichnis bemerkt und umbenannt, aber die anderen in den anderenrc
Verzeichnissen nicht entdeckt . Das Entfernen derjenigen, die Ihr Skript verwenden, hat leider nicht geholfen. (Ich habe überprüft, ob sie erstellt wurden, wie Sie vorgeschlagen haben.) Bei der zweiten Methode habe ich keinenssh.service
Eintrag imetc/systemd/system/multi-user.target.wants/
Verzeichnis und auf daslib/systemd/system/
Verzeichnis kann nicht zugegriffen werden. Das System kann nicht einmal sagen, dass es sich um ein Verzeichnis handelt (und das Ausführenfile
gibt mir:ERROR: cannot open
lib / systemd / system '(Eingabe- / Ausgabefehler) `).systemd
Ihnen erwähnten Dateien vorhanden waren, also versuchte ich Ihren zweiten Vorschlag, der funktionierte :) Unsicher, warum die Dinge zwischen den Bildern anders waren, aber es könnte mein Hacken gewesen sein, das etwas im ersten Bild beeinflusst hat. (Ich habe keine Ahnung was ...) Vielen Dank für Ihre Hilfe.lib/systemd/system/
Verzeichnis nicht zugänglich. Gleiches gilt für ein Wheezy-Bild. Nur das Lite-Image erlaubte mir, auf das Verzeichnis zuzugreifen und daher die Anweisungen zu vervollständigen.Für diejenigen unter Ihnen, die mit den neueren Raspbian-Images darauf stoßen: Es gibt ein
sshwitch
systemd-Ziel, das prüft/boot/ssh
, und wenn diese Datei vorhanden ist, werden die SSH-Hostschlüssel neu generiert und der SSH-Server aktiviert.Um SSH zu aktivieren, fügen Sie einfach eine Datei hinzu, die
ssh
im Stammverzeichnis der Startpartition aufgerufen wird (die FAT-bootcode.bin
Datei mit der Datei), und starten Sie Ihren Pi!Bearbeiten: Dies funktionierte auf meinem 2017-01-11-raspbian-jessie-lite Bild.
quelle
Es tut mir leid, dass dies eine Antwort ist, aber es reicht nicht aus, nur einen Kommentar abzugeben.
Ist der SSH-Dienst aktiv? Wenn es möglich ist und es sich um eines der Himbeer-Installationsimages handelt, versuchen Sie es mit raspi-config, nur um ssh zu aktivieren.
Überprüfen Sie auf andere Weise, ob ssh geladen und aktiviert ist
Möglicherweise lehnt der SSH-Port 22 die Verbindung ab, weil der Dienst nicht bereit ist
quelle
systemctl --list-units | grep ssh
(oder besser noch informativersystemctl status ssh
) verwenden. Aber Sie haben im Wesentlichen Recht. "Verbindung abgelehnt" bedeutet, dass der Port nicht überwacht wird. Wenn ssh ausgeführt wird, ist die IP falsch.https://www.raspberrypi.org/blog/a-security-update-for-raspbian-pixel/ Dieser Link für das Betriebssystem der Rasbian PIXEL-Version.
quelle
/boot/ssh
.In der Version von Jessie lite vom 26. Februar 2016 ist ssh standardmäßig aktiviert.
quelle