Foire aux questions

(dont on pense qu'elles seront fréquemment posées)
retour accueil


Dans toute cette FAQ toutes les commandes à taper sont précédée d’un $ et les résultats qui s’affichent simplement dans le terminal ne le sont pas.

Obtenir un compte/site

Plusieurs conditions doivent être réunies pour que vous puissiez obtenir un compte :

  1. Vous devez connaître personnellement une personne actuellement dans le village et le village doit avoir envie de vous y accueillir
  2. Il doit rester des ressources matérielles pour vous accueillir (espace disque, ram, cpu, bande passant)
  3. Vous devez être en mesure de fournir une clef ssh publique
  4. Vous devez être en mesure d’expliquer pourquoi vous voulez rejoindre le serveur

Si toutes ces conditions sont réunies vous pouvez nous envoyer votre clef publique et nous rejoindre :)

↩ retour en haut


Créer et communiquer une paire de clef ssh

L’unique prérequis est d’avoir openSSH installé sur votre machine.

Le but ici est de créer ce que l’on nomme une paire de clef ssh qui permettra de vous authentifier sur le serveur. C’est un peu comme un mot de passe mais en mieux. La procédure va créer sur votre ordinateur deux fichiers intrinsèquement liés. Une clef dite publique et une clef dite privée. La clef publique est celle qu’il faudra communiquer aux personnes sur le serveur pour obtenir un accès. Il n’y a aucun risque à la communiquer au monde entier, elle est faite pour ça. La clef privée est elle très secrète. Il ne faut absolument jamais la communiquer à qui que ce soit d’autre ni la perdre. Il n’est pas possible de la regénérer si elle est perdue.

Tout se fera dans le terminal. Ouvrez donc votre terminal préféré (parfois en faisant ctrl+alt+t). Désolé, je vais mettre les exemples en anglais.

Pour vérifier si vous avez openSSH lancez ssh -V. Si vous voyez quelque chose du type OpenSSH_9.2p1 Debian-2+deb12u2, OpenSSL 3.0.11 19 Sep 2023 ou quoi que ce soit d’autre que command not found ou message d’erreur similaire alors c’est bon ! Sinon il va falloir installer openSSH à l’aide de votre gestionnaire de paquet. Par exemple sous debian sudo apt install openssh-client fera l’affaire.

C’est maintenant que vous allez choisir un nom de compte et, par défaut, votre nom de domaine. Il doit ne contenir que des minuscules de a à z et/ou des chiffres. Aucun caractère spécial, aucune majuscule. Si votre nom de compte est “alice” alors par défaut votre site sera accessible à l’adresse “http://alice.bebou.netlib.re”. Il est possible de la changer ensuite. En partant du principe que vous voulez nommer votre compte et votre sous-domaine “alice” vous pouvez lancer la commande suivante :

$ ssh-keygen -t ed25519 -C alice

Elle va vous demander un ensemble d’informations. Ce qui est écrit entre parenthèses est le comportement par défaut. S’il convient il suffit d’appuyer sur entrer pour passer à la suite. Sinon il faut soit même entrer ce que l’on souhaite.

Premièrement, l’emplacement de la clef. Ici votre_utilisateurice est le nom de votre compte sur votre machine perso. Vous devez rentrer le chemin vers la clef (le fichier) à créer. Si c’est votre première clef ssh vous pouvez simplement appuyer sur entrer. Sinon j’imagine que vous savez un peu ce que vous faites, entrez un chemin qui convient et faites attention à ne pas écraser une clef existante :

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/votre_utilisateurice/.ssh/id_ed25519):

Deuxièmement la commande vous demandera une phrase de passe pour chiffrer la clef. Autrement dit seules les personnes connaissant cette phrase de passe et ayant accès à la clef - à priori uniquement vous - pourront utiliser la clef pour s’authentifier sur le serveur sur le compte correspondant. Si vous choisissez de ne pas mettre de phrase de passe toute personne ayant une copie de votre clef privée pourra se connecter sur votre compte sans plus d’informations nécessaires. Si vous choisissez de mettre une phrase de passe chaque utilisation de la clef nécessitera d’insérer cette phrase pour la débloquer et pouvoir l’utiliser. C’est une protection supplémentaire en cas de perte et/ou de vol de la clef privée. Il est recommandé de mettre une phrase de passe même si cela n’est pas nécessaire. Il est également recommandé de choisir une bonne phrase de passe, c’est à dire aussi aléatoire que possible et d’au moins 6/7 mots1. Si vous mettez une phrase de passe et que vous l’oubliez il sera impossible de débloquer la clef privée. Il est donc important de faire l’effort de l’apprendre par coeur.

Enter passphrase (empty for no passphrase):
Enter same passphrase again:


Your identification has been saved in /home/votre_utilisateurice/.ssh/id_ed25519
Your public key has been saved in home/votre_utilisateurice/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:jEl7BWye0joCmY+VQcxyGG9RqmOhTO8TD5bCS6UM38I alice
The key's randomart image is:
+--[ED25519 256]--+
|  .*o....        |
|  o.=o  o.       |
|...*+o.+ ..      |
|*+B=+..=+.       |
|.BE@. +oS        |
|..*o* o.         |
| . o o .         |
|    .            |
|                 |
+----[SHA256]-----+

Oh le joli dessin ! Comme indiqué vous avez dorénavant un clef privée id_ed25519 et la clef publique associée id_ed25519.pub.

Le contenu de la clef publique ressemble à quelque chose du style

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEMQgNDrqMgWCC4EjuXZ/e08/dZOhUqSa/z7w8sAHolL alice

Tout ce qui suite la longue chaîne de caractères “aléatoire”2 servira à vous donner un nom de compte. Si vous changez d’avis c’est maintenant ou jamais de l’éditer.

Pour qu’une personne déjà sur le serveur vous donne les accès il faudra lui communiquer le fichier id_ed15519.pub. Peu importe le canal utilisé, c’est un simple fichier texte. Vous pouvez copier coller son contenu dans une conversation, envoyer le fichier en tant que tel en pièce-jointe d’un mail etc.

Plus qu’à attendre qu’on vous ajoute !

↩ retour en haut


Se connecter au serveur

Pour se connecter à votre compte sur le serveur il faut d’abord remplir les conditions pour pouvoir obtenir un compte, avoir créé une paire de clef et l’avoir envoyé à une personne déjà sur le serveur.

Si tout cela est déjà fait vous devriez pouvoir vous y connecter en ssh en faisant :

$ ssh alice@bebou.netlib.re -p 1459

Si vous avez mis une phrase de passe il faudra l’insérer, sinon vous devriez arriver sur votre compte !

Pour éviter d’avoir à systématiquement taper tout cela quand vous voulez vous connecter vous pouvez ajouter une entrée dans le fichier /home/votre_utilisateurice/.ssh/config à l’aide d’un éditeur de texte. Si ce fichier n’existe pas il faudra le créer. A l’intérieur vous pouvez écrire :

host bebou
hostname bebou.netlib.re
user alice
port 1459

Ainsi vous n’aurez plus qu’à taper ssh bebou pour vous connecter. ssh fera automatiquement le lien entre le “host” bebou et l’url, le port et le nom du compte.

↩ retour en haut


Ajouter une personne au serveur

Votre copaine voudrait nous rejoindre, tout le monde l’aime et iel a un projet trop cool ? Iel vous a envoyé sa clef publique ? Vous mourrez d’envie de lui créer un compte de suite là maintenant ?

Rien de plus simple, connectez vous au compte pi possédant les droits d’administration :

$ ssh pi@bebou.netlib.re -p 1459

puis lancez la commande menu :

$ menu
>
ajouter un compte
supprimer un compte
changer de sous-domaine
mettre un site en ligne
mettre un site hors ligne
faq
shell

Pour sélectionner une action commencez par taper son nom ou naviguez vers le bas avec les flèches du clavier. Quand vous êtes sur ajouter un compte (quand cette ligne est en surbrillance), appuyez sur “entrer”. Vous verrez ensuite :

>
en copiant/collant
depuis un fichier

Si vous choisissez en copiant/collant il suffira de coller la clef publique comme ceci :

copier/coller la clef ici : ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEMQgNDrqMgWCC4EjuXZ/e08/dZOhUqSa/z7w8sAHolL alice

puis d’appuyer sur la toucher entrer. Le serveur va créer le compte et automatiquement vous déposer dans le salon “accueil” du serveur irc. Vous pouvez faire un petit coucou au nom de votre copaine ou directement fermer a session en faisant ctrl+d.

Si vous choisissez depuis un fichier existant sur le serveur il faudra renseigner son chemin :

chemin vers le fichier : /home/pi/alice.pub

Dans ce cas pas d’ouverture du client irc mais ne vous inquiétez pas.

↩ retour en haut


Supprimer son compte

Attention : toute suppression est définitive

Si vous voulez nous quitter, ou si pour une raison légitime il est important de supprimer le compte d’une autre personne connectez vous au compte pi

$ ssh pi@bebou.netlib.re -p 1459

puis lancez la commande menu

$ menu
>
ajouter un compte
supprimer un compte
changer de sous-domaine
mettre un site en ligne
mettre un site hors ligne
faq
shell

choisissez “supprimer un compte” puis le compte en question (“annuler” ferme tout) :

Dire adieu à qui ?
>
annuler
machin
alice

Vous devrez confirmer la suppression. En appuyant sur o puis entrer vous supprimerez définitivement toutes les données du compte. En appuyant sur quoi que ce soit d’autre puis entrer vous annulerez tout.

Supprimer l'utilisateurice alice ? o=oui, quoi que ce soit d'autre=non :

Puis une dernière confirmation (on sait jamais)

Vraiment vraiment supprimer alice ? écrire 'oui' pour confirmer : oui

Hop, tout est supprimé !

↩ retour en haut


Changer de sous-domaine

Si vous voulez que votre site soit accessible à http://cool.bebou.netlib.re et plus à http://alice.bebou.netlib.re vous pouvez vous connecter sur le compte pi puis lancer la commande menu :

$ menu
>
ajouter un compte
supprimer un compte
changer de sous-domaine
mettre un site en ligne
mettre un site hors ligne
faq
shell

choisir “changer de sous-domaine” et selectionner votre site parmi la liste :

du sous-domaine
>
alice
machin

et finalement renseigner le nouveau sous-domaine :

vers : cool

Votre site devrait instantanément être dispo à la nouvelle adresse. L’annuaire devrait quant à lui se mettre à jour maximum cinq minutes après l’opération.

↩ retour en haut


Modifier son site

Si vous venez d’ouvrir un compte vous devriez voir une page extrêmement simple à votrecompte.bebou.netlib.re. Comment la modifier ?

Directement sur le serveur

Nous documentons cette possibilité parce qu’elle peut avoir son utilité mais nous recommandons de travailler en local.

Quand vous vous connectez sur le serveur vous arriverez dans votre dossier personnel - /home/alice/. Ici vous pouvez utiliser la commande ls pour vérifier ce qu’il s’y trouve :

$ ls
alice.bebou.netlib.re  choixutil  createtmuxsession

alice.bebou.netlib.re est le dossier contenant votre site. Tous les fichiers qui s’y trouvent sont accessibles sur http://alice.bebou.netlib.re. Par défaut le serveur web affiche index.html s’il existe. Vous pouvez constatez qu’il existe déjà :

$ ls alice.bebou.netlib.re
index.html

Pour vérifier son contenu vous pouvez utiliser cat :

$ cat alice.bebou.netlib.re/index.html
page de alice

Si vous fatiguez après avoir tapé ces commandes assez longues sachez qu’il est possible d’auto compléter les chemins des fichiers3 en faisant une tabulation.

Pour modifier le contenu depuis le terminal on peut utiliser un éditeur de texte dans le terminal, par exemple nano :

$ nano alice.bebou.netlib.re/index.html
  GNU nano 7.2                   alice.bebou.netlib.re/index.html
page de alice


                                    [ Lecture de 1 ligne ]
^G Aide        ^O Écrire      ^W Chercher    ^K Couper      ^T Exécuter    ^C Emplacement
^X Quitter     ^R Lire fich.  ^\ Remplacer   ^U Coller      ^J Justifier   ^/ Aller ligne

Il est possible ici de modifier le fichier en se déplaçant avec les flèches du clavier et en tapant le texte que l’on souhaite insérer. Vuos pouvez ensuite vous référez aux raccourcis en bas de la fenêtre pour sauvegarder le fichier et sortir, en sachant qu’ici ^ veut dire la touche control. Ainsi pour écrire le fichier dans sa nouvelle version il faut faire ctrl+o et valider le chemin du fichier (simplement appuyer sur entrer). Pour ensuite quitter vous opuvez faire ctrl+x. Alternativement en faisant directement ctrl+x nano vous demandera si vous voulez sauvegarder le fichier ou pas, ce que vous pouvez accepter en appuyant sur o et vous pourrez quitter en appuyant sur la touche entrer.

une fois le fichier sauvegarder vous pouvez accéder à alice.bebou.netlib.re via n’importe quel navigateur et constater le changement !

En local puis en poussant les modifications sur le serveur

Vous conviendrez que la méthode précédente est assez fastidieuse. Il faut se faire à l’utilisation d’un éditeur de texte dans le terminal, il n’est pas possible de travailler hors ligne puisqu’il vous pouvoir accéder au serveur etc. Nous recommandons donc de travailler en local.

Par travailler en local vous crééerez votre site sur votre ordinateur pour ensuite déposer tous les fichiers d’un coup sur le serveur. Admettons que vous souhaitiez avoir une page d’accueil très simple avec un titre et une image. Vous pouvez créer un dossier site dans votre répertoire maison et y mettre le document index.html avec le contenu suivant :

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <title>Le site d'Alice</title>
</head>
<body>
    <h1>Bienvenu sur mon site !</h1>
    <p>Voici mon chat</p>
    <img src="/chat.jpg">
</body>
</html>

Ici vous serez tenter de vérifier si tout fonctionne bien avant de l’envoyer sur le serveur. Pour cela pas de solution magique, il vous faut faire tourner un serveur web localement sur votre ordinateur. Pour cela voir la partie dédiée à cette question.

Pour ensuite envoyer tout le contenu du dossier site vers le bon dossier sur le serveur nous allons utiliser rsync. Sur debian vous pouvez l’obtenir via apt : sudo apt install rsync.

Une fois rsync installé vous pouvez synchroniser les dossiers locaux et distants en faisant :

rsync -hvr ~/site/ bebou:~/alice.bebou.netlib.re/
Enter passphrase for key '/home/votre_utilisateurice/.ssh/id_ed25519':
sending incremental file list
site/
site/chat.jpg
site/index.html

sent 933 bytes  received 58 bytes  31,46 bytes/sec
total size is 735  speedup is 0,74

-h dit à rsync d’afficher les tailles transférées en format lisible par des humain·es. -v d’afficher plus d’infos. -r de copier récursivement tout ce qu’il y a dans le dossier local. ~/site/ est le dossier dans lequel vous avez mis les fichiers à copier. alice est le nom du host que vous avez possiblement préalablement créé dans .ssh/config et ~/alice.bebou.netlib.re/ le dossier dans lequel copier le contenu de site.

Si vous n’avez pas renseigné de phrase de passe à la génération de votre clef elle ne vous sera pas demandée. Si vous n’avez pas ajouté d’entrée dans votre .ssh/config de façon à pouvoir simplement écrire bebou: vous pouvez écrire

rsync -e 'ssh -p 1459' -hvr ~/site/ alice@bebou.netlib.re:~/alice.bebou.netlib.re/

C’est un peu plus long et embêtant. Il est important de mettre des / à la fin des chemins sinon les fichiers ne se copieront pas comme il faut. C’est bien ~/site/ et ~/alice.bebou.netlib.re/ et non pas ~/site et ~/alice.bebou.netlib.re.

Si vous avez tout fait comme il faut vous devriez pouvoir voir votre nouveau site à l’url correspondante, bravo !

↩ retour en haut


Gérer l’apparition de son site sur les pages jaunes

Tous les changements qui suivent prennent cinq minutes à être effectifs.

Par défaut votre site n’apparaît pas dans l’annuaire. Pour le faire il faut vous connecter une première fois à votre compte et il vous sera demandé si vous souhaitez y apparaître ou pas.

Il est toujours possible de changer d’avis :

Masquer votre site

Connectez-vous à votre compte et supprimez le fichier .listeblanche en lançant la commande rm .listeblanche.

Rendre votre site visible

Connectez-vous à votre compte et creez le fichier .listeblanche en lançant la commande touch .listeblanche.

↩ retour en haut


Gérer la disponibilité de son site

Peut-être que vous ne voulez pas simplement ne pas faire apparaître votre site dans les pages jaunes mais carrément le rendre innacessible sans pour autant le supprimer.

Mettre son site hors ligne

Deux façons :

  1. En crééant un fichier nommé .offline à la racine de votre site

Modifiez votre site de manière à ce qu’il existe un fichier nommé .offline à sa racine. Vous pouvez utiliser les commandes :

cd alice.bebou.netlib.re
touch .offline
  1. En utilisant la commande “mettre un site hors ligne” du menu

Se connecter au compte pi, lancer la commande menu et utiliser “mettre un site hors ligne” :

$ menu
>
ajouter un compte
supprimer un compte
changer de sous-domaine
mettre un site en ligne
mettre un site hors ligne
faq
shell

puis choisissez le site en question dans la liste :

>
test
alice
machin

Mettre un site en ligne

Les sites sont par défaut créé de manière à ce qu’ils soient en ligne. Si un site a été rendu hors ligne par le passé et que vous souhaitez le rétablir, deux façons :

  1. En supprimant le fichier nommé .offline à la racine de votre site

Modifiez votre site de manière à ce qu’il n’existe plus de fichier nommé .offline à sa racine. Vous pouvez utiliser les commandes :

cd alice.bebou.netlib.re
rm .offline
  1. En utilisant la commande “mettre un site en ligne” du menu

Se connecter au compte pi, lancer la commande menu et utiliser “mettre un site en ligne” :

$ menu
>
ajouter un compte
supprimer un compte
changer de sous-domaine
mettre un site en ligne
mettre un site hors ligne
faq
shell

puis choisissez le site en question dans la liste :

>
test
alice
machin

↩ retour en haut


Consulter et gérer des dépôts git

Les dépôts git publics sont disponibles sur : http://git.bebou.netlib.re.

Si vous souhaitez simplement lire/exécuter un dépôt

Vous pouvez cloner “anonymement”, c’est à dire sans avoir à vous authentifier, via le protocole git. Pour ce faire lancer :

$ git clone git://bebou.netlib.re/nom_du_depot

Par exemple pour cloner le dépôt de ce site :

$ git clone git://bebou.netlib.re/bebou

Si vous souhaitez contribuer à un dépôt existant

Pour pouvoir contribuer, c’est à dire pousser du code sur le dépôt distant, hébergé sur le serveur, il faut utiliser le protocole ssh. Il faut donc posséder un compte sur le serveur.

Si vous possédez un compte vous pouvez cloner un dépôt existant comme ceci :

$ git clone ssh://nom_du_compte@bebou.netlib.re:1459/srv/git/nom_du_depot

Si vous avez une entrée dans votre ~/.ssh/config qui renseigne le nom de domaine et votre compte cette commande pourrait se résumer par :

$ git clone bebou:/srv/git/nom_du_depot

En SSH le chemin /srv/git est nécessaire pour que le serveur sache où trouver le dépôt que vous voulez cloner.

Alternativement vous pouvez cloner anonymement, faire votre commit puis pousser en utilisant l’option --set-upstream pour dire à git de suivre cette branche distante :

$ git clone git://bebou.netlib.re/nom_du_depot
# blablabla git commit
$ git push --set-upstream ssh://nom_du_compte@bebou.netlib.re:1459/srv/git/nom_du_depot

Une fois vos modifications ou votre premier push avec --set-upstream fait vous pourrez ensuite pousser avec :

$ git push

Si c’est la première fois que vous utilisez git il est possible qu’il vous demande des informations à propos de votre identité (nom, prénom, mails). Vous pouvez y mettre ce que vous voulez.

Si vous souhaitez créer un dépôt

Admettons vous avez un dépôt en local que vous voulez le partager au monde (ou à vos ami·es). Il faut d’abord qu’un dépôt vide existe sur le serveur distant, prêt à recevoir vos données. Pour cela il existe un script makegitrepo qui vous guidera. Vous pouvez le lancer en faisant (si votre config est configuré pour) :

$ ssh nom_du_compte@bebou.netlib.re -p 1459 makegitrepo
Nom du dépôt : test2
Description du dépôt : un dépôt de test
Rendre publique sur le web ? (o/n) o
Dépôt Git vide partagé initialisé dans /srv/git/test2/

Vous pouvez ensuite vous déplacer dans votre dépôt git en local et pousser sur la branche distante main (celle par défaut) :

git push --set-upstream ssh://nom_du_compte@bebou.netlib.re:1459/srv/git/test2 main

↩ retour en haut


Il est un peu moche ce site non ?

Il est un peu austère. Si vous avez des suggestions rejoignez nous et proposez vos idées !

↩ retour en haut


Est-ce qu’un jour le serveur sera remis droit ?

Si une autre personne souhaite l’héberger chez elle oui :)

↩ retour en haut


C’est quoi le petit nom du serveur ?

Il n’en a pas encore mais toutes les propositions sont les bienvenues. Pour soumettre vos idées vous pouvez accéder à l’url http://bebou.netlib.re/nom=inserer_nom_ici. Une liste des propositions sera publiée d’ici quelques semaines ou mois (on est le 29 avril 2024). Si, par exemple, vous voulez l’appeler “raspi” vous pouvez copier-coller le lien au dessus et remplacer inserer_nom_ici par raspi : http://bebou.netlib.re/nom=raspi

Vous allez recevoir une erreur 404 mais c’est normal ! Cette méthode de sondage est très scientifiquement nommées “par greppage de logs de serveurs web” et est décrite dans cet article.

↩ retour en haut


bebou.netlib.re c’est un nom de domaine définitif ?

Non. Il a le mérite d’être gratos mais il est envisageable de le changer. Il faudra que ce soit d’un commun accord et qu’une ou plusieurs personnes passent à la caisse.

↩ retour en haut


Est-ce qu’il est possible d’avoir de l’HTTPS ?

Oui, cela devrait arriver bientôt, au plus tard au changement de nom de domaine s’il a lieu. Cela dit il y a des (rares) avantages à conserver des versions HTTP des sites notamment l’incapacité de certains vieux matériels à utiliser le protocole HTTPS4.


  1. Pour en savoir plus vous pouvez visionner une conférence sur le sujet 

  2. ici “alice” 

  3. et certaines commandes ! 

  4. parce que les logiciels qui fonctionnent dessus ne le supportent pas ou qu’ils ne font plus confiance aux bonnes autorités de certification.