SSH, Pine64 & Mipch

Bonjour,
Je me suis dans lancé, dans la création d’un cluster “Mpich” en suivant ce site: https://web.archive.org/web/20160917010411/http://www.rasmurtech.com/raspberry-pi-3-cluster-supercomputer/
En arrivant à l’étape ou je dois injecter la clé du ssh keygen dans les autres pine impossible de me connecter d’un pine64 à l’autre…et pourtant j’arrive à le faire de putty… Le message d’erreur étant connection reste by “mon ip”, et pourtant mon fichier ssh_hd m’autorise la connexion en root (j 'ai arpenté quelques forums avant d’abdiquer). J 'ai un peu pimpé mon fichier eth0 pour attribuer des “ip” fixes est ce que ça peut en être la cause.
PS: c’est le début de ma vie sans interface graphique sous Debian, du coup je comprends vite mais il faut m’expliquer longtemps. :slight_smile:
D’avance merci (et si ce sujet à déjà été traité je m’en excuse j’ai pas trouvé le post)

Je ne connais rien à raspbian et ne sais pas ce que vous appelez pine et pine64. Je suppose que c’est simplement un serveur de la grappe. Voici comment je vois les choses : sur chaque sytème de la grappe on a un utilisateur principal (uid 1000) qui devrait avoir les droits sudo sur le système local. Pour simplifier, on utilise le même nom/identifiant pour tous les systèmes de la grappe.
Depuis votre machine de contrôle de la grappe (un PC sous Debian par exemple) vous pouvez lancer::

ssh-agent bash
ssh-add
 # le système vous demande votre phrase de passe
# vous vérifiez que la sortie de
ssh-add -L
# contient bien la même chose que le(s) fichier(s) `~ /.ssh/id_rsa.pub` et id_dsa.pub éventuellement

Toujours avec la même fenêtre, le même shell qui est associé à l’agent, vous pouvez configurer une connexion sans demande de mot de passe vers un serveur

ssh -A identifiant@server

La première fois il faut confirmer l’empreinte du serveur (qui alimentera le fichier known_hosts sur votre système client).
Il faudra ensuite donner le mot de passe associé à l’identifiant.
Si c’est OK les commandes

ssh-add -l
ssh-add -L

devraient retourner la même chose que dans une fenêtre sur le client source avec un shell et les clés chargées dans un agent.
Sur le serveur, il est primordial que les fichiers de configuration ssh aient les bons droits, en particulier pour le répertoire .ssh .
Si donc, depuis le serveur vous tentez de revenir vers le système source en lançant

ssh vous@source id

vous allez provoquer la création du répertoire .ssh et d’un fichier known_hosts avec les bons droits. De plus, comme vous avez utilisé le transfert des identifiants stockés dans l’agent (option -A ci-dessus), vous n’aurez pas besoin de donner de mot de passe.

La copie des clés publiques peut se faire par

ssh-add -L > .ssh/id_dsa.pub

Vous vous déconnectez alors du serveur
exit
et relancez aussitôt une connexion sans mot de passe

ssh -A identifiant@server
env | fgrep SSH

Vous pouvez alors créer une configuration de ssh pour l’utilisateur root sur le serveur. Vérifiez que le répertoire .ssh est bien créé avec les bons droits

fp2@debpacha:~$ sudo ls -ld /root/.ssh
drwx------ 2 root root 4096 juil. 17 18:23 /root/.ssh
fp2@debpacha:~$ 

et vous copiez la clé publique

sudo cp .ssh/id_rsa.pub /root/.ssh

Après déconnexion du serveur, vous devriez être capable de lancer des commandes privilégiées sur le serveur depuis votre poste client de la manière suivante

sudo  SSH_AUTH_SOCK=$SSH_AUTH_SOCK ssh serveur id

Cela suppose évidemment une stabilité de la correspondance entre les noms des serveurs de la grappe et des IPs associées, autrement dit des IPs fixes. Ceci est un autre problème.

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة

F. Petitjean
Ingénieur civil du Génie Maritime.

« Je préfère le vin d’ici à l’au-delà »
Pierre Dac

Merci,
Alors le pine64, sont des raspberry moins cher, j’ai installé debian 8 (cette version) et j’avais configuré des ip via eth0.
J’ai essayé la manip que vous avez donné mais hélas sans succès.

Le ssh-agent bash ne donne aucun effet et le ssh-add ne propose rien, de concluant.
et le ssh-add -L me donnes une clé d’une bonne centaine de caractères…

Alors j’ai plusieurs pistes:
-Est ce que le fait d’être “root” et de pas avoir utiliser “sudo” pour toutes mes installations peut avoir un effet sur une mauvaise configuration des sous répertoires?
-Est ce que le fait de passer par un freebox en guise de switch peut avoir un impact sur les ports utilisé (parce que j’ai un switch mais j’arrive pas à acceder aux pine en direct pc–>master+slaves)

Alors j’ ai tenté de modifier mon sshd_config et ce sans réel succès (du coup j ‘arrive même plus à utiliser putty pour y acceder mon window) mais cependant en modifiant le fichier sshd d’un des slaves et en lui forcant les IP autorisé avec celui du “master” j’ ai changé “connection timed out by ip” en “no route to host”

Je vais remettre mon fichier sshd “à l’origine”

Merci encore,

Pourrait-on avoir un peu plus de détails sur la configuration réseau ?
Ces IPs ne sont tout de même pas un secret d’état :slight_smile: ?

Quelle manip ? Sans voir les commandes passées et les retours complets il nous est impossible de deviner ce qui se passe et de vous aider.

Je vous invite à lire et relire :

man ssh-agent
man ssh-add

Vous installez le paquet debian-goodies et vous tapez :

fp2@debpacha:~$ which ssh-agent
/usr/bin/ssh-agent
fp2@debpacha:~$ dpkg-query --search /usr/bin/ssh-agent
openssh-client: /usr/bin/ssh-agent
fp2@debpacha:~$ debmany openssh-client
fp2@debpacha:~$ 

Et vous me dites combien il y a de fichiers d’information à lire pour le seul paquet openssh-client

Quels sous-répertoires ?

fp2@debpacha:~$ whoami
fp2
fp2@debpacha:~$ sudo whoami
root
fp2@debpacha:~$ 

La réponse à la question devrait donc être non. Par contre, l’utilisation de sudo est conseillée pour pas mal de raisons et en pratique cela permet de savoir ce qu’on fait.
La commande whoami fait partie du paquet coreutils, en vous aidant de la commande debmany pouvez-vous nous dire combien de commandes documentées (via des pages man ) sont fournies par ce paquet coreutils ?

De quel type et marque ce commutateur ? administrable ? C’est sûr qu’avec une freebox on n’a pas des ports Ethernet à foison et on ne sait pas ce qui se passe à l’intérieur :frowning:
Combien de pine 64 prévoyez-vous de mettre en grappe ?

Ce que vous appelez mon sshd_config il se trouve sur quel système ? Et pourquoi se précipiter ? Comme on dit en Suisse il n’y a pas le feu au lac ? En demandant avant sur ce Forum s’il était judicieux de modifier la configuration du serveur ssh c’était peut-être un peu moins de temps perdu.

Tous les fichiers de configuration sont en principe dans un arbre sous /etc et le volume pour tous les logiciels installés reste relativement modeste, de l’ordre d’une vingtaine de mégaoctets.
Pour gérer cela je vous recommande un logiciel nommé etckeeper qui, couplé avec votre gestionnaire de version préféré ( git, mercurial , …), vous permet de retrouver quand et comment votre fichier “sshd” a été modifié (via des commandes git dans /etc par exemple). Et vous avez les messages associés au “commit” pour documenter pourquoi vous faites les modifications.

Avec etckeeper remettre dans l’état d’origine la configuration sshd prend quelques minutes et on est sûr de soi.

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة

F. Petitjean
Ingénieur civil du Génie Maritime.

« Avant donc que d’écrire, apprenez à penser »
Boileau De L’Art poétique (Chant I)

Bonjour Little John,
Merci encore,

Alors aucun secrets d’état, la base de la grappe c’est pour faire des calculs par éléments finis sans monopoliser ma machine de travail., pour ce qui est du nombre de port il y en a 5 et pour ce qui concerne le nombre de pine64 dans la grappe je pars avec 4.
et le jours ou je fais travailler le tout de manière efficace et cohérente, je ferai passerai soit en wifi avec 4/8/12 machine en plus (plus je ne serais pas assez riche et je suis pas certain que je gagne vraiment de temps sur la taille des calculs que j’envisage) soit je me ferait une baie maison avec un switch en conséquence.

La j’ ai un https://www.netgear.fr/home/products/networking/switches/GS305.aspx, il est pas fou mais je pensais vraiment pourvoir dissocier ma grappe de mon reseau local, hélas je cherche encore comment faire.
( le fait que mon switch ne soit pas administrable doit avoir son incidence…)

Merci pour etckeeper ( je trouvais ça pas hyper pratique de toujours écrire en commentaire) et je ne connaissais même pas l’existence de git, mercurial,

Donc ma machine perso c’est un window 10,
Le Pine master c’est 192.168.0.101 de son petit nom "pine64-1"
Welcome to ARMBIAN 5.31 stable Debian GNU/Linux 8 (jessie) 3.10.105-pine64
System load: 0.10 0.10 0.05 Up time: 6 min
Memory usage: 4 % of 1988MB IP: 192.168.0.101
CPU temp: 45°C
Usage of /: 11% of 14G
[ General system configuration: armbian-config ]
root@pine64-1:~# whoami
root
root@pine64-1:~#ifconfig
eth0 Link encap:Ethernet HWaddr 2a:ef:7b:40:3c:55
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::28ef:7bff:fe40:3c55/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:816 errors:0 dropped:0 overruns:0 frame:0
TX packets:652 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:71072 (69.4 KiB) TX bytes:50185 (49.0 KiB)
Interrupt:114

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:268 errors:0 dropped:0 overruns:0 frame:0
TX packets:268 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:25508 (24.9 KiB) TX bytes:25508 (24.9 KiB)

et ses slaves c’est 192.168.0.102/3/4 ce sont tous des copies “iso” du premier mais j’ai forcé les IP dans eth0 et les IP sont devenu “static” (d’ailleurs ils sont devenu “mous” a la connexion depuis ce moment)
en utilisant ce tuto https://technique.arscenic.org/reseau/article/attribuer-une-ip-fixe-a-un-serveur

Je poursuis la suite de vos demande [quote=“littlejohn75, post:4, topic:74073”]
debian-goodies
[/quote]

et[quote=“littlejohn75, post:4, topic:74073”]
vous nous dire combien de commandes documentées (via des pages man ) sont fournies par ce paquet coreutils ?

[/quote]

dès que j’ai fini de lire les man-ssh-agent et toutes les informations que vous m’avez permis de découvrir.

Merci encore, (dans le prochain post je mets mon eth0 et mes sshd & ssh et mon nmap, si ça peut servir )

Je vois dans l’onglet “caractéristiques techniques” 5 ports en gigabit/s. Cela me semble très correct pour commencer.

Pour un débutant un commutateur non administrable est préférable car c’est plus simple et donc il n’y a moins d’occasion de se tromper :slight_smile:
Ce qui vous manque AMHA ce sont des connaissances de base en réseau TCP/IP. Un réseau filaire Ethernet avec des machines qui se comptent sur les doigts d’une seule main, ce n’est tout de même pas sorcier.
La pile réseau a été créée à l’origine sur des systèmes Unix à base de BSD. En ce temps là, il n’y avait pas de Wifi, pas de ecommerce…
Il faut revenir aux fondamentaux (comme au rugby). Dans cette optique austère, les outils sont un Linux en ligne de commandes pas un Window$ et une Freebox grand public qui offre une multitude de services pour des configurations clientes, des consommateurs ignares.
Si comme système complet (écran, clavier, …) vous n’avez qu’un Windows 10, cela va être très dur de vous aider. Par exemple, dans cet environnement hostile, la table /etc/hosts des systèmes dont on veut gérer manuellement la configuration réseau se trouve à un endroit très improbable de la hiérarchie des fichiers, la commande traceroute s’appelle tracert, pas mal de fonctionnalités ne sont que dans la version professionnelle. Bref, par rapport à une Debian minimale c’est vraiment chercher les ennuis et être maso.

Deux questions :
Pourquoi master ? Qu’a-t-il de plus que les autres ?
L’IP fait-elle partie de la plage d’adresses que le serveur DHCP de la Freebox est susceptible d’allouer ?

Pourquoi ne pas numéroter la grappe à partir de 192.168.5.101 ? En supposant que la Freebox se désintéresse des adresses en 192.168.5.xxx ?

Rien compris.
La chose essentielle à vérifier en réseau c’est le routage : tenter la commande ping entre chaque paire de machines avec pour argument le numéro IP puis avec le nom de la machine.

Je n’arrive pas à comprendre comment vous n’avez pas pu réaliser un câblage fonctionnel en utilisant le Netgear. Dans cet appareil on est conceptuellemnt dans les couches les plus basses du modèle OSI à 7 couches, il n’y a pas de sous-réseau, C’est un peu comme une rallonge électrique, toutes les prises du bloc sont alimentées.
L’appareil enregistre pour chaque port l’adresse MAC des cartes réseau qui sont à l’autre bout du câble. c’est à peu près tout.

Je vous invite donc à lancer des traceroute entre chacune des machines de la grappe. Tant que cette partie n’est pas correcte inutile d’aller plus loin.

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة

F. Petitjean

« Celui qui, parti de rien, n’est arrivé nulle part n’a de merci à dire à personne !! »
Pierre Dac