🟢 🇫🇷 OVH VPS (vps-1780de45) yannig.net
vps-1780de45.vps.ovh.net
4 vCPU Cores
8 Go RAM
75 Go SSD NVME
1 Backup auto
Location: Gravelines
IP: 51.38.37.240
IPv6: 2001:41d0:305:2100::c1c
OS: Debian 13
OVH VPS-1
Première connexion
Après avoir récupére le mot de passe sur sur le site OVH
Se connecter utilisateur debian via SSH
1
ssh debian@51.38.37.240
La procédure nous demande la création d’un nouveau mot de passe puis reconnexion utilisateur “debian”
Cas OVH VPS-1 avec clé publique
La clé publique cat ~/.ssh/vps-1780de45.pub
1
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFtBgw/R6nkNeLGU/GXuXcLDSuaOE2srac0M3CYjF3U/ yano@e6230
Un message contenant un lien vers le mot de passe utilisateur “debian” est envoyé à la fin du cycle de réinstallation
Se connecter utilisateur debian et la clé privée via SSH
1
ssh -i ~/.ssh/vps-1780de45 debian@51.38.37.240
Fin Cas OVH VPS-1 avec clé publique
Mise à jour debian
Mise à jour
1
2
sudo -s
apt update && apt upgrade -y
Modifier le mot de passe root
1
2
3
sudo -s
passwd
exit
Renommer utilisateur debian en yann
Autoriser la connexion root en créant le fichier /etc/ssh/sshd_config.d/10-root.conf
1
echo "PermitRootLogin yes" > /etc/ssh/sshd_config.d/10-root.conf
Redémarrer le service sshd
1
systemctl restart sshd
Se déconnecter de la session SSH en cours
Se connecter en root via SSH
1
ssh root@51.38.37.240
Renommer l’utilisateur debian en yann
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Renommer l’utilisateur
usermod -l yann debian
# changer le dossier personnel et déplacer les fichiers
usermod -d /home/yann -m yann
# yann appartient au groupe debian: groups yann
# yann : debian adm dialout cdrom floppy sudo audio dip video plugdev
# Créer le groupe yann
groupadd yann
# ajouter “yann” au groupe “yann”
# usermod -aG groupe utilisateur
usermod -aG yann yann
# changer le groupe principal
# usermod -g groupe utilisateur
usermod -g yann yann
Vérification
1
groups yann
Réponse
1
yann : yann adm dialout cdrom floppy sudo audio dip video plugdev
Modifier mot de passe utilisateur
1
passwd yann
Modifier les accès sudo en remplaçant debian par yann
1
sed -i 's/debian/yann/g' /etc/sudoers.d/90-cloud-init-users
Modifier le paramétrage SSH pour interdire la connexion root
1
2
3
4
# Supprimer le PermitRootLogin yes
rm /etc/ssh/sshd_config.d/10-root.conf
# Redémarrer le serveur sshd:
systemctl restart sshd
Locale + Date et heure + Synchro
Activer en_US.UTF-8 et fr_FR.UTF-8 et en
1
dpkg-reconfigure locales
Default fr_FR.UTF-8
1
2
3
4
Generating locales (this might take a while)...
en_US.UTF-8... done
fr_FR.UTF-8... done
Generation complete.
Activer le fuseau Europe/Paris
1
timedatectl set-timezone Europe/Paris
Horloge système synchronisée : timedatectl
1
2
3
4
5
6
7
Local time: Tue 2026-04-21 08:37:07 CEST
Universal time: Tue 2026-04-21 06:37:07 UTC
RTC time: Tue 2026-04-21 06:37:07
Time zone: Europe/Paris (CEST, +0200)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Outils
Quelques outils
1
2
3
apt install rsync curl tmux jq figlet git tree -y
# dig
apt install dnsutils
Motd
Motd
1
rm /etc/motd && nano /etc/motd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
__ __ ___ ___ ___ __ __ _ _
\ \ / /| _ \/ __| / _ \\ \ / /| || |
\ V / | _/\__ \ | (_) |\ V / | __ |
\_/ |_| |___/ \___/__\_/ _|_||_|_ _ _ _ ___
__ __ _ __ ___ ___ / ||__ |( _ ) / \ __| | ___ | | | | __|
\ V /| '_ \(_-<|___|| | / / / _ \| () |/ _` |/ -_)|_ _||__ \
\_/ | .__//__/ |_| /_/ \___/ \__/ \__,_|\___| |_| |___/
_ _|_|_ _ _ _ _ _ (_) __ _ _ _ ___ | |_
| || |/ _` || ' \ | ' \ | |/ _` | _ | ' \ / -_)| _|
\_, |\__,_||_||_||_||_||_|\__, |(_)|_||_|\___| \__|
|__/ _ ____ ___ __|___/__ ___ _ _ __
| __|/ | |__ /( _ ) |__ /|__ | |_ )| | | / \
|__ \| | _ |_ \/ _ \ _ |_ \ / /_ / / |_ _|| () |
|___/|_|(_)|___/\___/(_)|___/ /_/(_)/___| |_| \__/
Hostname
Hostname yannig.net
1
hostnamectl set-hostname yannig.net
Vérifier: hostnamectl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Static hostname: yannig.net
Icon name: computer-vm
Chassis: vm 🖴
Machine ID: e0cdfae1b8884977a07acb4570fd559d
Boot ID: 0699a976e56743ce9f25f539a3aff31c
Product UUID: e0cdfae1-b888-4977-a07a-cb4570fd559d
AF_VSOCK CID: 1
Virtualization: kvm
Operating System: Debian GNU/Linux 13 (trixie)
Kernel: Linux 6.12.74+deb13+1-amd64
Architecture: x86-64
Hardware Vendor: OpenStack Foundation
Hardware Model: OpenStack Nova
Hardware Serial: e0cdfae1-b888-4977-a07a-cb4570fd559d
Firmware Version: 1.16.3-debian-1.16.3-2~bpo12+1
Firmware Date: Tue 2014-04-01
Firmware Age: 12y 2w 6d
Déconnexion ‘root’
Se déconnecter de la session ssh root
OpenSSH, clé et script
Sauter l’étape suivante si la création du VPS a utilisé une clé
Début connexion avec clé
sur l'ordinateur de bureau
Générer une paire de clé curve25519-sha256 (ECDH avec Curve25519 et SHA2) pour une liaison SSH avec le serveur.
1
ssh-keygen -t ed25519 -o -a 100 -f ~/.ssh/vps-1780de45
Envoyer les clés publiques sur le serveur KVM
1
ssh-copy-id -i ~/.ssh/vps-1780de45.pub yann@51.38.37.240
sur le serveur KVM On se connecte via SSH
1
ssh yann@51.38.37.240
Fin connexion avec clé
Si clé
1
ssh -i ~/.ssh/vps-1780de45 yann@51.38.37.240
Créer la configuration utilisateur SSH dans le VPS
1
sudo nano /etc/ssh/sshd_config.d/10-yann.conf
Ajouter le contenu suivant
1
2
Port = 55240
PasswordAuthentication no
Relancer le serveur
1
sudo systemctl restart sshd
Test connexion
1
ssh -p 55240 -i ~/.ssh/vps-1780de45 yann@51.38.37.240
Historique de la ligne de commande
Ajoutez la recherche d’historique de la ligne de commande au terminal Se connecter en utilisateur debian Tapez un début de commande précédent, puis utilisez shift + up (flèche haut) pour rechercher l’historique filtré avec le début de la commande.
1
2
3
# Global, tout utilisateur
echo '"\e[1;2A": history-search-backward' | sudo tee -a /etc/inputrc
echo '"\e[1;2B": history-search-forward' | sudo tee -a /etc/inputrc
Parefeu
Alternative: Configurer le pare-feu sous Linux avec Iptables
Installation UFW sur Debian / Ubuntu
1
sudo apt install ufw
Les règles
1
2
3
4
5
# Pour autoriser un port personnalisé et correspondant à votre accès SSH
sudo ufw allow 55240/tcp # port SSH
sudo ufw allow https # port 443
# Activer le parefeu
sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Vérifier : sudo ufw status
1
2
3
4
5
6
7
8
Status: active
To Action From
-- ------ ----
55240/tcp ALLOW Anywhere
443 ALLOW Anywhere
55240/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
BorgBackup VPS
Sauvegarde VPS dans une boite de stockage
REMPLACER yannig.net par le votre
Boîte de stockage: u326239@u326239.your-storagebox.de
Dépôt yannig.net ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/yannig.net
Clé privée SSH borg: /root/.ssh/id_borg_ed25519
Passphrase: /root/.borg/yannig.net.passphrase
Fichier d’exclusion: /root/.borg/yannig.net.exclusions
Exécution automatique: 02h10
Installer BorgBackup
Sauvegarde VPS dans une boite de stockage
Installer borgbackup
1
sudo apt install borgbackup
Clés ssh borg
En mode su
créer une clé SSH pour l’authentification borg
1
ssh-keygen -t ed25519 -f /root/.ssh/id_borg_ed25519
Validez en appuyant sur la touche « Entrée » à toutes les questions
Vous devriez maintenant avoir une clé privée contenue dans le fichier /root/.ssh/id_borg_ed25519, et une clé publique contenue dans le fichier /root/.ssh/id_borg_ed25519.pub
La clé privée ne doit jamais être partagée.
Ajout clé publique borg à la boîte de stockage
Depuis un poste ayant accès à la boîte de stockage, on récupère le fichier authorized_keys dans un fichier nommé storagebox_authorized_keys
1
echo -e "get .ssh/authorized_keys storagebox_authorized_keys" | sftp -P 23 -i ~/.ssh/bx11-yann-ed25519 u326239@u326239.your-storagebox.de
Copier/coller le contenu du fichier du fichier de clef publique (fichier cat /root/.ssh/id_borg_ed25519.pub* de la machine à sauvegarder dans ce terminal
1
cat >> storagebox_authorized_keys
et presser [Ctrl]+[D] pour valider.
On renvoie le fichier modifié storagebox_authorized_keys dans le fichier authorized_keys de la boîte de stockage bx11-yann
1
echo -e "put storagebox_authorized_keys .ssh/authorized_keys" | sftp -P 23 -i ~/.ssh/bx11-yann-ed25519 u326239@u326239.your-storagebox.de
Tester la connexion depuis le vps à la boîte de stockage (toujours en mode su)
1
sftp -P 23 -i /root/.ssh/id_borg_ed25519 u326239@u326239.your-storagebox.de
1
2
3
4
5
6
7
The authenticity of host '[u326239.your-storagebox.de]:23 ([2a01:4f8:2b02:135::2]:23)' can't be established.
ED25519 key fingerprint is SHA256:XqONwb1S0zuj5A1CDxpOSuD2hnAArV1A3wKY7Z3sdgM.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[u326239.your-storagebox.de]:23' (ED25519) to the list of known hosts.
Connected to u326239.your-storagebox.de.
sftp>
Saisir quit pour sortir
Créer une phrase de passe forte
Créer une phrase de passe forte pour chiffrer les sauvegardes Borg (sans espace vide)
Vous pouvez utiliser Diceware Password Generator pour générer une phrase de passe forte
En mode su
Ajout de la phrase forte dans un fichier au dossier /root/.passphrase
1
2
3
mkdir -p /root/.borg
# ajout phrase
echo "<La phrase de passe forte>" > /root/.borg/yannig.net.passphrase
Conserver cette phrase, elle sera demandé pour la création du dépôt borg
Fichier d’exclusion
Créer un fichier d’exclusion /root/.borg/yannig.net.exclusions
1
2
3
4
5
6
7
8
9
10
11
12
13
/proc
/sys
/dev
/media
/mnt
/cdrom
/tmp
/run
/var/tmp
/var/run
/var/cache
/srv
lost+found
Initialisation dépôt borg
Les dépôts de la boîte de stockage sont sous ./backup/borg/
En mode su
Initialisation dépôt
1
2
3
4
export BORG_PASSPHRASE="`cat /root/.borg/yannig.net.passphrase`"
export BORG_RSH='ssh -i /root/.ssh/id_borg_ed25519'
BORG_REPOSITORY='ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/yannig.net'
borg init --encryption=repokey-blake2 $BORG_REPOSITORY
Le résultat de la commande précédente
1
2
3
4
5
6
7
8
9
10
11
12
IMPORTANT: you will need both KEY AND PASSPHRASE to access this repo!
Key storage location depends on the mode:
- repokey modes: key is stored in the repository directory.
- keyfile modes: key is stored in the home directory of this user.
For any mode, you should:
1. Export the borg key and store the result at a safe place:
borg key export REPOSITORY encrypted-key-backup
borg key export --paper REPOSITORY encrypted-key-backup.txt
borg key export --qr-html REPOSITORY encrypted-key-backup.html
2. Write down the borg key passphrase and store it at safe place.
BorgBackup yannig.net vers boîte de stockage
Créer un script de sauvegarde borg-backup.sh (notez l’usage de borg prune pour supprimer les archives trop anciennes)
1
sudo nano /root/.borg/borg-backup.sh
Le script /root/.borg/borg-backup.sh avec envoi message via ntfy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/sh
#
# Script de sauvegarde.
#
# Envoie les sauvegardes sur un serveur distant, via le programme Borg.
# Les sauvegardes sont chiffrées
t=$(date +%s)
#
export BORG_PASSPHRASE="$(cat /root/.borg/yannig.net.passphrase)"
export BORG_RSH='ssh -i /root/.ssh/id_borg_ed25519'
BORG_REPOSITORY=ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/yannig.net
BACKUP_DATE=`date +%Y-%m-%d-%Hh%M`
borg create -v --progress --stats --exclude-from /root/.borg/yannig.net.exclusions ${BORG_REPOSITORY}::${BACKUP_DATE} /
borg prune -v --list --stats --keep-daily=7 --keep-weekly=1 --keep-monthly=1 $BORG_REPOSITORY
#
d=$(($(date +%s) - $t))
DUREE=$(($d / 3600 ))h$((($d % 3600) / 60))m$(($d % 60))s
# Message
curl \
-H "X-Email: ntfy@cinay.eu" \
-H "Title: 💾 $HOSTNAME : Borgbackup yannig.net en $DUREE" \
-H "Authorization: Bearer tk_xxxxxxxxxxxxxxxxxx" \
-H prio:low \
-d "yannig.net
`hostname -I`
✔️ Fin de la sauvegarde Borgbackup `date +%d/%m/%Y-%Hh%M`" \
https://noti.rnmkcy.eu/yan_infos
Modifier la valeur Bearer tk_...
Le rendre exécutable
1
sudo chmod +x /root/.borg/borg-backup.sh
Automatiser sauvegarde BorgBackup
Automatiser en utilisant systemd timer
Le service /etc/systemd/system/autoborg.service
1
2
3
4
5
6
7
8
9
[Unit]
Description=BorgBackup
[Service]
User=root
ExecStart=/usr/bin/bash /root/.borg/borg-backup.sh
[Install]
WantedBy=multi-user.target
Le timer /etc/systemd/system/autoborg.timer
1
2
3
4
5
6
7
8
9
[Unit]
Description=Exécution BorgBackup
[Timer]
Unit=autoborg.service
OnCalendar=*-*-* 03:15
[Install]
WantedBy=timers.target
Exécution tous les jours
Activez/démarrez le timer, puis vérifiez qu’il est chargé et actif
1
2
3
sudo systemctl daemon-reload
sudo systemctl enable autoborg.timer --now
systemctl status autoborg.timer
Vérifiez s’il apparaît dans la liste des minuteries :
1
systemctl list-timers --no-pager
1
2
NEXT LEFT LAST PASSED UNIT ACTIVATES
Wed 2026-04-22 03:… 17h - - autoborg.timer autoborg.service
Lorsque vous voulez voir si les sauvegardes se sont déroulées correctement, vous pouvez consulter le journal le plus récent
1
systemctl status autoborg
Ou afficher tous les journaux avec :
1
sudo journalctl -u autoborg
Pour lancer une sauvegarde manuellement
1
/usr/bin/bash /root/.borg/borg-backup.sh
Liste des sauvegardes
Pour lister les sauvegardes
1
2
3
4
5
# en mode su
export BORG_PASSPHRASE="$(cat /root/.borg/yannig.net.passphrase)"
export BORG_RSH='ssh -i /root/.ssh/id_borg_ed25519'
BORG_REPOSITORY=ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/yannig.net
borg list --short $BORG_REPOSITORY
Donne un résultat de ce type
1
2026-04-21-10h03
Nebula + NFS
🌀 Nebula
1
2
3
4
# création client nebula
nebulaclient -n vps-1780de45-nebula -i 10.139.110.3/24,fda3:4291:71b9:2f0a::3/64 -g servers
✅ OVH yannig.net vps-1780de45-nebula 10.139.110.3/24 fda3:4291:71b9:2f0a::3/64 servers
Installer nebula sur le vps
🔀 NFS
installez le paquet nfs
1
sudo apt install nfs-common # debian
Une fois le package installé, exécutez la commande suivante pour créer les répertoires de montage cibles
1
2
sudo mkdir -p /srv/media/
sudo chown $USER:$USER -R /srv/media
Montage nfs /etc/fstab
1
2
3
4
5
# Les points de montage cwwk
#10.139.110.2:/sharenfs/multimedia /srv/media nfs4 nofail,x-systemd.automount,x-systemd.device-timeout=10s 0 0
#
# Nebula NFS
[fda3:4291:71b9:2f0a::2]:/sharenfs/multimedia /srv/media nfs4 nofail,x-systemd.automount,x-systemd.device-timeout=10s 0 0
Recharger et monter
1
2
sudo systemctl daemon-reload
sudo mount -a
Lecture
1
ls /srv/media
chirpy Divers eBook images Music Picture podcasts Video








