- Obtenir un compte/site
- Créer et communiquer une paire de clef ssh
- Se connecter au serveur
- Ajouter une personne au serveur
- Supprimer son compte
- Changer de sous-domaine
- Modifier son site
- Gérer l’apparition de son site sur les pages jaunes
- Gérer la disponibilité de son site
- Consulter et gérer des dépôts git
- Il est un peu moche ce site non ?
- Est-ce qu’un jour le serveur sera remis droit ?
- C’est quoi le petit nom du serveur ?
- bebou.netlib.re c’est un nom de domaine définitif ?
- Est-ce qu’il est possible d’avoir de l’HTTPS ?
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 :
- Vous devez connaître personnellement une personne actuellement dans le village et le village doit avoir envie de vous y accueillir
- Il doit rester des ressources matérielles pour vous accueillir (espace disque, ram, cpu, bande passant)
- Vous devez être en mesure de fournir une clef ssh publique
- 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 :)
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 !
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.
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.
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é !
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.
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 !
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
.
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 :
- 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
- 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 :
- 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
- 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
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
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 !
Est-ce qu’un jour le serveur sera remis droit ?
Si une autre personne souhaite l’héberger chez elle oui :)
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.
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.
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.
-
Pour en savoir plus vous pouvez visionner une conférence sur le sujet ↩
-
ici “alice” ↩
-
et certaines commandes ! ↩
-
parce que les logiciels qui fonctionnent dessus ne le supportent pas ou qu’ils ne font plus confiance aux bonnes autorités de certification. ↩