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




