Post

🟢 🇫🇷 OVH vps-56d1c3c5

🟢 🇫🇷 OVH vps-56d1c3c5

vps-56d1c3c5.vps.ovh.net
2 vCPU Cores
4 Go RAM
40 Go SSD NVME
1 Backup auto
Location: Strasbourg
IP: 164.132.198.38
IPv6: 2001:41d0:404:200::7ec4
OS: Debian 13

OVH

Votre VPS vient d’être installé avec le système Debian 13.

*** Paramètres d’accès :

  • Nom du VPS : vps-56d1c3c5.vps.ovh.net
  • Adresse IPv4 : 164.132.198.38
  • Adresse IPv6 : 2001:41d0:404:200::7ec4
  • Nom d’utilisateur : debian

Votre mot de passe doit être généré via : https://www.ovh.com/manager/secret/#?id=96991122-04f5-45fa-a75c-c783193d3c02 Ce lien est valable 30 jours à compter de l’envoi de cet e-mail. Une fois ouvert, la durée est réduite à 7 jours (dans la limite initiale des 30 jours).

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@164.132.198.38

La procédure nous demande la création d’un nouveau mot de passe puis reconnexion utilisateur “debian”

Mise à jour debian

Mise à jour

1
2
sudo -s
apt update && apt upgrade -y

Modifier le mot de passe root

1
2
passwd
exit

Renommer utilisateur debian en usxb

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@164.132.198.38

Renommer l’utilisateur debian en usxb

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Renommer l’utilisateur
usermod -l usxb debian
# changer le dossier personnel et déplacer les fichiers
usermod -d /home/usxb -m usxb
# usxb appartient au groupe debian: groups usxb
# usxb : debian adm dialout cdrom floppy sudo audio dip video plugdev
# Créer le groupe usxb
groupadd usxb
# ajouter “usxb” au groupe “usxb”
# usermod -aG groupe utilisateur
usermod -aG usxb usxb
# changer le groupe principal
# usermod -g groupe utilisateur
usermod -g usxb usxb

Vérification

1
groups usxb

Réponse

1
usxb : usxb

Modifier mot de passe utilisateur

1
passwd usxb

Modifier les accès sudo en remplaçant debian par usxb

1
sed -i 's/debian/usxb/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
Generating locales (this might take a while)...
  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: Sat 2026-07-25 12:56:33 CEST
           Universal time: Sat 2026-07-25 10:56:33 UTC
                 RTC time: Sat 2026-07-25 10:56:33
                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
 __   __ ___  ___    ___ __   __ _  _                      
 \ \ / /| _ \/ __|  / _ \\ \ / /| || |                     
  \ V / |  _/\__ \ | (_) |\ V / | __ |                     
   \_/  |_|  |___/  \___/  \_/  |_||_|                     
                      ___   __     _  _      ____     ___  
 __ __ _ __  ___ ___ | __| / /  __| |/ | __ |__ / __ | __| 
 \ V /| '_ \(_-<|___||__ \/ _ \/ _` || |/ _| |_ \/ _||__ \ 
  \_/ | .__//__/     |___/\___/\__,_||_|\__||___/\__||___/ 
      |_|                                                  
  _   __  _ _     _  ____ ___     _  ___  ___     ____ ___ 
 / | / / | | |   / ||__ /|_  )   / |/ _ \( _ )   |__ /( _ )
 | |/ _ \|_  _|_ | | |_ \ / /  _ | |\_, // _ \ _  |_ \/ _ \
 |_|\___/  |_|(_)|_||___//___|(_)|_| /_/ \___/(_)|___/\___/

Hostname

Vérifier: hostnamectl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  Static hostname: vps-56d1c3c5
       Icon name: computer-vm
         Chassis: vm 🖴
      Machine ID: b0ddb23f631f41a28f278609257723e7
         Boot ID: 356d69d28f824a8d9bd6e4dd6f0c3245
    Product UUID: b0ddb23f-631f-41a2-8f27-8609257723e7
  Virtualization: kvm
Operating System: Debian GNU/Linux 13 (trixie)        
          Kernel: Linux 6.12.86+deb13-amd64
    Architecture: x86-64
 Hardware Vendor: OpenStack Foundation
  Hardware Model: OpenStack Nova
 Hardware Serial: b0ddb23f-631f-41a2-8f27-8609257723e7
Firmware Version: 1.16.3-debian-1.16.3-2~bpo12+1
   Firmware Date: Tue 2014-04-01
    Firmware Age: 12y 3month 3w 3d                    

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-56d1c3c5

Envoyer les clés publiques sur le serveur KVM

1
ssh-copy-id -i ~/.ssh/vps-56d1c3c5.pub usxb@164.132.198.38

sur le serveur KVM On se connecte via SSH

1
ssh usxb@164.132.198.38

Fin connexion avec clé

Si clé

1
ssh -i ~/.ssh/vps-56d1c3c5 usxb@164.132.198.38

Créer la configuration utilisateur SSH dans le VPS

1
2
echo "Port = 55038
PasswordAuthentication no" | sudo tee /etc/ssh/sshd_config.d/10-usxb.conf

Relancer le serveur

1
sudo systemctl restart sshd

Test connexion

1
ssh -p 55038 -i ~/.ssh/vps-56d1c3c5 usxb@164.132.198.38

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 55038/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 :

1
sudo ufw  status
1
2
3
4
5
6
7
8
Status: active

To                         Action      From
--                         ------      ----
55038/tcp                  ALLOW       Anywhere                  
443                        ALLOW       Anywhere                  
55038/tcp (v6)             ALLOW       Anywhere (v6)             
443 (v6)                   ALLOW       Anywhere (v6)             

BorgBackup VPS

Sauvegarde VPS dans une boite de stockage

REMPLACER vps-56d1c3c5 par le votre

Boîte de stockage: u326239@u326239.your-storagebox.de
Dépôt vps-56d1c3c5 ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/vps-56d1c3c5
Clé privée SSH borg: /root/.ssh/id_borg_ed25519
Passphrase: /root/.borg/vps-56d1c3c5.passphrase
Fichier d’exclusion: /root/.borg/vps-56d1c3c5.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.

Clé publique /root/.ssh/id_borg_ed25519.pub

1
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPWHKYmgN2cieZWAoavl19V7bQCcNLjpqtwj/4IaqCtU root@vps-56d1c3c5

Modifier les droits dossier

1
chmod 600 -R /root/.ssh

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-usxb

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 (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/vps-56d1c3c5.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/vps-56d1c3c5.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

Modifier les droits dossier

1
chmod 600 -R /root/.borg

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/vps-56d1c3c5.passphrase`"
export BORG_RSH='ssh -i /root/.ssh/id_borg_ed25519'
BORG_REPOSITORY='ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/vps-56d1c3c5'
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 vps-56d1c3c5 vers boîte de stockage

Fichier environnement ntfy /root/ntfy.env (mode root)

1
2
3
4
5
6
7
# Environnement ntfy
echo "NTFY_URL="https://ntfy.rnmkcy.eu/yan_infos"
NTFY_TOKEN="tk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
NTFY_EMAIL="ntfy@cinay.eu"" | sudo tee -a /root/ntfy.env
# Protection
sudo chown root:root /root/ntfy.env
sudo chmod 600 /root/ntfy.env

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/sh
#
# Script de sauvegarde.
#

. "/root/ntfy.env"

t=$(date +%s)

export BORG_PASSPHRASE="$(cat /root/.borg/vps-56d1c3c5.passphrase)"
export BORG_RSH='ssh -i /root/.ssh/id_borg_ed25519'
BORG_REPOSITORY=ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/vps-56d1c3c5
BACKUP_DATE=`date +%Y-%m-%d-%Hh%M`

BORG_EXCLUSION="/root/.borg/vps-56d1c3c5.exclusions"
BORG_PATH="/"
INFO="OVH vps-56d1c3c5 Strasbourg"

CMD_CREATE="borg create -v --progress --stats --exclude-from $BORG_EXCLUSION \"${BORG_REPOSITORY}::${BACKUP_DATE}\" $BORG_PATH"
borg create -v --progress --stats --exclude-from $BORG_EXCLUSION "${BORG_REPOSITORY}::${BACKUP_DATE}" $BORG_PATH
rc_create=$?

CMD_PRUNE="borg prune -v --stats --keep-daily=7 --keep-weekly=1 --keep-monthly=1 \"${BORG_REPOSITORY}\""
borg prune -v --stats --keep-daily=7 --keep-weekly=1 --keep-monthly=1 "$BORG_REPOSITORY"
rc_prune=$?

d=$(( $(date +%s) - t ))
DUREE=$(( d / 3600 ))h$(( (d % 3600) / 60 ))m$(( d % 60 ))s

s_create="❌"
[ $rc_create -eq 0 ] && s_create="✔️"

s_prune="❌"
[ $rc_prune -eq 0 ] && s_prune="✔️"

msg_title="💾 $INFO : Borgbackup en $DUREE"

{
  echo
  echo "${s_create} ${CMD_CREATE}"
  echo
  echo "${s_prune} ${CMD_PRUNE}"
} | curl -sS -X POST \
  -H "X-Email: $NTFY_EMAIL" \
  -H "Title: $msg_title" \
  -H "Authorization: Bearer $NTFY_TOKEN" \
  -H "prio:low" \
  -H "Content-Type: text/plain; charset=utf-8" \
  --data-binary @- \
  "$NTFY_URL"

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:18

[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           
Sun 2026-07-26 03:18:00 CEST       13h -                                       - 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
2
tmux # Option
/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/vps-56d1c3c5.passphrase)"
export BORG_RSH='ssh -i /root/.ssh/id_borg_ed25519'
BORG_REPOSITORY=ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/vps-56d1c3c5
borg list --short  $BORG_REPOSITORY

Donne un résultat de ce type

1
2026-07-25-13h52
Cet article est sous licence CC BY 4.0 par l'auteur.