Post

🟢 🇫🇷 OVH VPS (vps-1780de45) yannig.net

🟢 🇫🇷 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

OVH

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

OVH

Choix “Réinstaller mon vps”

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

OpenSSH

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

Texte alternatif

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

Nebula V2

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

Cet article est sous licence CC BY 4.0 par l'auteur.