Configuration initiale sans moniteur ni clavier


10

Une question similaire a déjà été posée: comment configurer Raspberry Pi sans moniteur?

Cependant, étant donné que la réponse acceptée ne semble pas offrir une solution appropriée, et étant donné qu'il y a un niveau d'ambiguïté dans ce qui a été demandé, je suppose que la question d'origine a été mal construite et que ma question n'est pas '' t un double exact.

J'effectue la configuration initiale et initiale d'un Pi. Je n'ai ni moniteur ni clavier, mais je souhaite utiliser un ordinateur portable connecté pour faire le travail. Je ne veux pas acheter un moniteur ou un clavier et les laisser assis juste pour les occasions où le Pi en a besoin. Je pourrais les emprunter, mais je prévois d'acheter plus de Pi à l'avenir, et je ne veux pas avoir à les emprunter à chaque fois.

J'ai défini une adresse IP statique sur le Pi en modifiant le cmdline.txtfichier. (Le Pi exécute la dernière version de Raspbian.)

ip=10.0.0.20

J'ai donné à l' ethinterface de mon ordinateur portable une adresse IP statique correspondante. (L'ordinateur portable exécute Ubuntu.)

ip ad add 10.0.0.10/24 dev eth0

J'ai connecté les deux ensemble avec un câble Ethernet et je peux réussir à cingler le Pi depuis mon ordinateur portable.

Ce que je ne peux pas faire, c'est sshpour le Pi. Je reçois une réponse Connexion refusée :

richard@richard-ThinkPad-X220:~$ ssh -vvv pi@10.0.0.20
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

Une chose que cela impliquerait est qu'il sshdne fonctionne pas encore sur le Pi.

Les documents officiels indiquent que sshds'exécute par défaut, mais est-il possible que lors d'un démarrage initial, d'autres choses (par exemple, des invites en attente de saisie par l'utilisateur) puissent bloquer le démarrage à un certain niveau, ce qui signifie que nous n'atteignons pas le point de sshddémarrage ?

Où dois-je aller d'ici? (Pas "dans les magasins pour acheter un moniteur" ...)

Ce que j'essaie est-il réellement possible?

Éditer:

J'ai maintenant essayé les méthodes mentionnées dans les réponses au message suivant, mais sans succès: Activer SSH sur RPi sans écran - touches pour raspi-config?

Plus précisément, m'assurer que le script d'initialisation SSH est exécuté au niveau d'exécution 2 ne m'a toujours pas permis de me connecter.


En supposant que vous pingiez le Pi et qu'il exécute un Raspbian récent, cela devrait fonctionner. La seule alternative que je peux suggérer est de se connecter via l'UART sur les broches 8 et 10. Cela nécessite des fils et un dongle série USB compatible 3V3.
joan

La définition d'adresses statiques ne fait que compliquer le problème. Si vous ne l'avez pas manipulé, vous devriez pouvoir vous connecter. ssh pi@raspberrypi.localVous ne semblez pas penser que nous dire comment vous essayez réellement sshest important.
Milliways

J'ai essayé de supprimer l'adresse IP statique de la configuration du Pi et j'ai essayé ping pi@raspberrypi.local. Mais cela ne fonctionne pas car raspberrypi.localest un hôte inconnu. N'aurait-il pas besoin d'une entrée /etc/hostssur mon ordinateur portable pour pouvoir le résoudre?
Richard Horrocks

Faites-moi savoir quels détails supplémentaires sur la façon dont je dois SSHing à fournir, et je serai heureux de les fournir - des excuses si quelque chose manque. Merci pour les suggestions jusqu'à présent :)
Richard Horrocks

1
Vous pouvez exécuter sudo nmap 10.0.0.20sur l'ordinateur portable. S'il indique que le port 22 est ouvert, SSH est en cours d'exécution, sinon il ne fonctionne pas. Cela ne le réparera pas, mais cela vous dira ce qui se passe.
garethTheRed

Réponses:


5

Les documents officiels indiquent que sshd s'exécute par défaut

Sur la dernière image que j'ai, 2015-11-21-raspbian-jessie- lite .img, ce n'est pas vrai. Debian / Raspbian jessie utilise actuellement systemd pour init, mais il y a une sorte de mécanisme hybride compatible avec SysV en arrière intégré, et je remarque sur le système en cours d'exécution que j'ai créé à partir de cette image (en utilisant un écran et un clavier pour la configuration initiale), où sshd est maintenant activé, il y a un déclencheur dans lesrc.d répertoires systemd et SysV . Vraisemblablement, c'est ainsi que fonctionne le mécanisme de compatibilité descendante (j'ai activé ssh via systemd). Dans tous les cas, il n'y a qu'une seule sshdinstance avec un PPID de 1 en cours d'exécution.

Pour le système de travail, il y a une entrée /etc/rc[2,3,4,5].dpour S02ssh(le numéro de priorité exact, 02, est défini lorsque le service est activé et peut varier). Il y a aussi un /etc/systemd/system/multi-user.target.wants/ssh.service.

Dans l'image de base, cependant ...

... Il n'y a pas d'entrée /etc/systemdet il y en a K01sshpour les niveaux d'exécution 2, 3, 4, 5. Cela garantira à peu près qu'aucun sshd n'est en cours d'exécution.

Ma suggestion est d'essayer d'abord de définir uniquement l'entrée SysV. Depuis le etcrépertoire de la deuxième partition sur la carte SD:

for i in 2 3 4 5; do \
ln -s ../init.d/ssh rc$i.d/S02ssh; \
rm rc$i.d/K01ssh \
done

Vérifiez que les liens sont là et qu'ils pointent vers le bon endroit avec stat. Je pense que cela devrait être suffisant et vous pouvez maintenant essayer de démarrer le système. Si c'est le cas, après avoir retiré ces liens et exécuté systemctl enable ssh, vérifiez que les liens ont été recréés (rappelez-vous, la priorité peut être différente).

Si vous obtenez toujours "Connexion refusée", créez un lien de [SD_rootfs]/lib/systemd/system/ssh.serviceà [SD_rootfs]/etc/systemd/default.target.wants/ssh.serviceet réessayez.


Merci pour les instructions très détaillées. J'avais remarqué K01sshdans le rc2.drépertoire et l' avais renommé, mais je n'avais pas repéré les autres dans les autres rcrépertoires. Supprimer ceux qui utilisent votre script n'a malheureusement pas aidé. (J'ai vérifié qu'ils ont été créés, comme vous l'avez suggéré.) Pour la deuxième méthode, je n'ai pas d' ssh.serviceentrée dans le etc/systemd/system/multi-user.target.wants/répertoire et le lib/systemd/system/répertoire n'est pas accessible. Le système ne peut même pas dire que c'est un répertoire (et l'exécution fileme donne: ERROR: cannot open lib / systemd / system '(erreur d'entrée / sortie) `).
Richard Horrocks

Notez que je n'utilise pas l'image Lite, mais l'image pleine taille de la même date que vous.
Richard Horrocks

Jetez un œil aux répertoires init mentionnés ci-dessus sur la carte. Vous devriez pouvoir dire si ssh est activé ou non. Si c'est le cas, corrigez IP + ssh en cours d'exécution! = "Connexion refusée", donc quelque chose s'est mal passé quelque part et vous devrez trouver un écran et un clavier pour le diagnostiquer. Alternativement (ou aussi), vous pouvez utiliser quelque chose comme wirehark pour voir quels paquets vont et viennent; cela prouverait définitivement ce qui se passe sur le réseau.
goldilocks

D'accord, j'ai fait un tour avec Wireshark mais je n'ai rien obtenu. Ensuite, j'ai décidé de graver une image Lite et d'essayer. J'ai remarqué que les systemdfichiers que vous avez mentionnés étaient présents, alors j'ai tenté votre deuxième suggestion, qui a fonctionné :) Je ne sais pas pourquoi les choses étaient différentes entre les images, mais cela aurait pu être mon piratage qui a affecté quelque chose dans la première image. (Je ne sais pas quoi ...) Merci beaucoup pour votre aide.
Richard Horrocks

Par souci d'exhaustivité, j'ai essayé à nouveau avec une nouvelle image Jessie pleine de graisse gravée sur une autre carte SD, mais encore une fois, le lib/systemd/system/répertoire était inaccessible. Il en va de même pour une image Wheezy. Seule l'image Lite m'a permis d'accéder au répertoire et donc de suivre les instructions.
Richard Horrocks

11

Pour ceux d'entre vous qui rencontrent cela avec les images Raspbian les plus récentes: il existe une sshwitchcible systemd qui vérifie /boot/sshet si ce fichier est présent, il régénère les clés d'hôte SSH et active le serveur SSH.

Donc, pour activer SSH, ajoutez simplement un fichier appelé sshà la racine de la partition de démarrage (celle de FAT, avec le bootcode.binfichier), et démarrez votre Pi!

Edit: cela a fonctionné sur mon image 2017-01-11-raspbian-jessie-lite.


Cela fonctionne bien. Si vous avez un clavier à portée de main, tapez: pi <enter> framboise <enter> sudo touch / boot / ssh <enter> sudo reboot <enter> puis regardez votre routeur pendant que le périphérique obtient une ip, puis ssh pi @ <thatip> et vous vous sentirez comme un pirate.
nurettin

1

Désolé d'être une réponse, mais pas de crédit pour simplement commenter.

Le service ssh est-il en place? Si c'est possible, et que c'est l'une des images d'installation de framboise, essayez raspi-config juste pour activer ssh.

Une autre façon, vérifiez si ssh est chargé et activé

sudo service --status-all|grep ssh

Peut-être que le port ssh 22 rejette la connexion car le service n'est pas prêt


1
Sur les versions actuelles de raspbian, vous voudrez probablement utiliser systemctl --list-units | grep ssh(ou mieux encore plus informatif systemctl status ssh). Mais vous avez essentiellement raison, "Connexion refusée" signifie que rien n'écoute sur le port. Si ssh est en cours d'exécution, l'adresse IP est incorrecte.
goldilocks

2
Merci d'avoir répondu. Le problème avec votre suggestion est que je n'ai aucun moyen d'exécuter la commande, car je ne peux pas accéder au Pi pour l'exécuter. Poulet et œuf. :( Je sais que l'adresse IP est correcte parce que je peux la cingler (et je sais que rien d'autre sur le réseau n'a la même adresse).
Richard Horrocks

1

https://www.raspberrypi.org/blog/a-security-update-for-raspbian-pixel/ Ce lien pour le système d'exploitation de la version Rasbian PIXEL.


Cela ne semble vraiment pas répondre à la question en aucune façon.
Jacobm001

Bien que les informations utiles se trouvent uniquement dans le lien (plutôt que dans la réponse, qui est là où elles devraient être), il s'agit au moins de la documentation officielle de raspberrypi.org et de la section "Qu'est-ce qui a changé?" dans la page liée détaille les problèmes de sécurité qui ont provoqué les modifications requises (c'est-à-dire la désactivation de ssh par défaut) et détaille le /boot/sshcorrectif.
Roberto Tyley

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.