Aller au contenu
Administration Linux medium

scp : copier des fichiers et dossiers en SSH

20 min de lecture

Quand on déploie une configuration sur un serveur, récupère des logs ou transfère un fichier rapidement entre deux machines, scp (Secure Copy Protocol) est l'outil le plus direct. Il utilise SSH pour chiffrer le transfert de bout en bout : une seule commande, pas de serveur FTP à configurer. Pour les transferts ponctuels et rapides, scp reste imbattable en simplicité.

  • Copier un fichier vers ou depuis un serveur distant
  • Transférer un répertoire complet avec -r
  • Utiliser un port SSH personnalisé avec -P (majuscule)
  • Connaître la différence entre -p et -P
  • Identifier quand préférer rsync à scp

scp fait partie des outils de transfert de fichiers sous Linux. Chaque outil a sa spécialité :

CommandeSpécialitéQuand l'utiliser
scpCopie distante via SSHTransfert rapide one-shot
rsyncSynchronisation intelligente (delta)Sauvegardes, gros fichiers, reprise
sftpTransfert interactif via SSHNavigation distante, sessions prolongées
tar + sshArchivage + transfertArbres de fichiers avec permissions complexes
curl / wgetTéléchargement HTTP/FTPRécupérer depuis le web

Quand utiliser scp plutôt que les autres :

SituationMeilleur outilPourquoi
Copier un fichier unique vers un serveurscpPlus simple que rsync pour un seul fichier
Sauvegarder un dossier régulièrementrsyncNe transfère que les différences
Transfert coupé en coursrsync -Pscp recommence à zéro
Transférer un fichier très volumineuxrsyncReprise possible, bande passante contrôlée
Récupérer un log rapidementscpUne seule commande, rapide
Synchronisation bi-directionnelleunisonrsync et scp sont unidirectionnels

🧠 Modèle mental — Comment fonctionne scp

scp = Source → [Tunnel SSH chiffré] → Destination

Modèle mental scp : la source (locale ou distante) est chiffrée via SSH et copiée vers la destination

Points clés

  • scp copie des fichiers à travers un tunnel SSH chiffré
  • La syntaxe user@host:chemin désigne un emplacement distant
  • Sans -r, scp ne copie que des fichiers (pas de dossiers)
  • -P (majuscule) pour le port, -p (minuscule) pour préserver les permissions
  • Aucune reprise de transfert possible : si ça coupe, on recommence
  • Pour des transferts réguliers, préférer rsync à scp

Règles d'or

1
Utiliser des clés SSH plutôt que des mots de passe Plus sécurisé et permet l'automatisation sans interaction.
2
Préférer rsync pour les transferts volumineux ou récurrents rsync reprend les transferts interrompus et ne transfère que les différences.

Vocabulaire essentiel

-r
Récursif : copie les dossiers et leur contenu
-P (majuscule)
Spécifier le port SSH (attention : majuscule !)
-p (minuscule)
Préserver permissions et dates
-C
Activer la compression pendant le transfert
-q
Mode silencieux (pas de barre de progression)
-v
Mode verbeux (détails de connexion SSH)
📚 Pour aller plus loin — 6 options avancées
-l
Limiter la bande passante (en Kbit/s)
-3
Transfert entre 2 serveurs via la machine locale
-i
Spécifier un fichier de clé privée SSH
-o
Passer des options SSH (StrictHostKeyChecking, etc.)
-F
Utiliser un fichier de config SSH alternatif
-c
Choisir l'algorithme de chiffrement

Le mécanisme : scp ouvre une session SSH vers la machine distante, puis transfère le fichier dans ce canal chiffré. Depuis OpenSSH 9.0, il ne parle plus le vieux protocole SCP mais le protocole SFTP par-dessus la même connexion ; la ligne de commande n'a pas changé, mais l'expansion des jokers et du ~ est désormais gérée différemment. L'option -O rebascule sur l'ancien protocole pour les serveurs qui n'implémentent pas SFTP.

scp reprend l'ordre des arguments de cp : la source d'abord, la destination ensuite. La seule différence est qu'un des deux peut porter un préfixe utilisateur@machine:. C'est ce préfixe, et lui seul, qui déclenche la connexion SSH ; sans lui, scp délègue simplement à une copie locale.

Fenêtre de terminal
scp [OPTIONS] SOURCE DESTINATION

Le sens du transfert n'est pas indiqué par une option mais par la position du préfixe distant. Repérez où se trouve le : dans la commande et vous savez ce qui part et ce qui arrive. Le troisième cas est le seul qui mette en jeu deux serveurs : la copie transite alors par votre poste, ce qui consomme deux fois votre bande passante.

ScénarioSyntaxeExemple
Local → Distantscp fichier user@srv:/dest/scp config.conf admin@web-01:/etc/nginx/
Distant → Localscp user@srv:/fichier /local/scp admin@web-01:/var/log/app.log ~/logs/
Distant → Distantscp -3 user1@srv1:/f user2@srv2:/dest/scp -3 admin@web-01:/log admin@backup:/logs/

C'est la source d'erreur n°1 avec scp :

OptionSignificationExemple
-p (minuscule)Préserve les permissions et datesscp -p script.sh user@srv:/opt/
-P (majuscule)Port SSH personnaliséscp -P 2222 fichier user@srv:/tmp/

Astuce mnémotechnique : Port = P majuscule, permissions = p minuscule.

Fenêtre de terminal
# Erreur fréquente : -p au lieu de -P pour le port
scp -p 2222 fichier.txt user@serveur:/tmp/
# scp: stat local "2222": No such file or directory
# -p active la préservation, "2222" devient un fichier source à copier
# Correct : -P (majuscule) pour le port
scp -P 2222 fichier.txt user@serveur:/tmp/
OptionSignificationUsage
-rRécursifCopier un dossier complet
-P <port>Port SSHServeur SSH sur port non standard
-pPréserverConserver permissions et dates
-CCompressionAccélérer sur connexions lentes
-vVerboseDébugger les problèmes SSH
-qQuietPas de barre de progression
-l <Kbit/s>LimiterContrôler la bande passante
-i <clé>IdentityUtiliser une clé SSH spécifique

La combo standard :

Fenêtre de terminal
# Envoi simple vers un serveur
scp config.conf admin@web-01:/etc/nginx/
# Dossier complet avec compression et port personnalisé
scp -r -C -P 2222 ~/projet/ deployer@prod:/var/www/app/
# Récupérer des logs avec préservation des dates
scp -p admin@web-01:/var/log/app.log ~/logs/

Par défaut, scp ne copie que les fichiers simples. Pour copier un dossier avec tout son contenu, l'option -r (récursif) est obligatoire :

Fenêtre de terminal
# Erreur : scp refuse de copier un dossier sans -r
scp dossier/ user@serveur:/tmp/
# scp: local "dossier" is not a regular file
# scp: failed to upload file dossier to /tmp/
# Correct : -r pour récursif
scp -r dossier/ user@serveur:/tmp/

L'option -3 permet de copier un fichier d'un serveur à un autre en passant par votre machine locale comme relais :

Fenêtre de terminal
# Copie logs de web-01 vers backup-01, via votre machine
scp -3 admin@web-01:/var/log/app.log admin@backup-01:/logs/

Le comportement par défaut dépend de votre version d'OpenSSH, vérifiez-le avec man scp. Sur OpenSSH 9.6 (Ubuntu 24.04, Debian 12), la page de manuel indique que sans -3 les données sont copiées directement entre les deux serveurs, ce qui suppose que le premier puisse s'authentifier auprès du second. Sur les versions plus récentes, le transit par la machine locale est devenu le comportement par défaut et c'est l'option -R qui demande la copie directe. Écrire -3 explicitement rend donc la commande portable entre les deux comportements.

Pour les transferts automatisés (scripts, CI/CD), utilisez une clé dédiée :

Fenêtre de terminal
# Clé SSH spécifique
scp -i ~/.ssh/deploy_key app.tar.gz deployer@prod:/releases/
# Combiné avec port personnalisé
scp -i ~/.ssh/deploy_key -P 2222 app.tar.gz deployer@prod:/releases/

Sur les connexions lentes ou pour les fichiers texte volumineux, la compression accélère le transfert :

Fenêtre de terminal
# Compression activée
scp -C database-dump.sql admin@backup:/dumps/
# Limiter la bande passante (en Kbit/s, pas Ko/s !)
scp -l 800 gros-fichier.iso user@serveur:/data/
# 800 Kbit/s ≈ 100 Ko/s

scp hérite entièrement de la configuration de SSH : le chiffrement du transport n'est donc jamais le point faible. Les vrais risques sont ailleurs, dans les droits du compte utilisé et dans ce que le fichier devient une fois déposé. Les quatre réflexes ci-dessous répondent à trois questions : avec quelle identité je me connecte, où j'écris, et comment je vérifie après coup. Le troisième point est le plus important en production : copier directement dans /etc/ en root fait porter à un transfert automatisé un droit d'écriture sur toute la configuration système.

  • Utiliser des clés SSH plutôt que des mots de passe pour l'automatisation
  • Vérifier les permissions après transfert : ssh user@srv "ls -la /chemin/"
  • Préférer un compte non-root pour les transferts, puis déplacer avec sudo si nécessaire
  • Surveiller les connexions : sudo journalctl -u ssh

scp est idéal pour les transferts ponctuels. Mais pour certains cas, rsync est meilleur :

Critèrescprsync
Reprise de transfertNon, recommence à zéroOui, reprend où il s'est arrêté
Transfert deltaNon, copie toutOui, ne copie que les changements
Exclusion de fichiersNonOui, --exclude
Dry-runNonOui, -n pour tester
SimplicitéPlus simplePlus d'options à connaître
DisponibilitéPartoutPas toujours installé

Règle simple : transfert ponctuel → scp. Transfert récurrent ou volumineux → rsync.

Ces erreurs reviennent constamment avec scp. Les connaître évite des transferts ratés et des fichiers écrasés par erreur.

Fenêtre de terminal
scp -p 2222 fichier.txt user@serveur:/tmp/

Symptôme : le port est ignoré, ou scp tente de copier un fichier nommé 2222.

Cause : -p (minuscule) préserve les permissions ; -P (majuscule) change le port SSH. Moyen mnémotechnique : Port = P majuscule.

Fenêtre de terminal
scp -P 2222 fichier.txt user@serveur:/tmp/
Fenêtre de terminal
scp dossier/ user@serveur:/tmp/

Symptôme : erreur not a regular file, rien n'est copié.

Cause : par défaut, scp ne copie que les fichiers simples, jamais les dossiers.

Fenêtre de terminal
scp -r dossier/ user@serveur:/tmp/
Fenêtre de terminal
scp gros-fichier.iso user@serveur:/data/ # coupure réseau

Symptôme : après une coupure, le transfert recommence à zéro.

Cause : scp ne supporte pas la reprise de transfert, contrairement à rsync.

Fenêtre de terminal
rsync -avP gros-fichier.iso user@serveur:/data/
Fenêtre de terminal
scp user@serveur:/home/user/Mon Dossier/file.txt .

Symptôme : erreur ou fichier introuvable.

Cause : le shell interprète l'espace comme un séparateur d'arguments. Sans protection, scp reçoit deux sources, …/Mon et Dossier/file.txt.

Fenêtre de terminal
scp "user@serveur:/home/user/Mon Dossier/file.txt" .

Encadrer l'argument entier de guillemets suffit avec le protocole SFTP, employé par défaut depuis OpenSSH 9.0. Si vous forcez l'ancien protocole avec -O, le chemin est en plus interprété par un shell distant : il faut alors une double protection, "user@serveur:/home/user/Mon\ Dossier/file.txt".

Fenêtre de terminal
scp user@serveur:/config/new.conf ~/config/important.conf

Symptôme : le fichier local est écrasé sans aucun avertissement.

Cause : scp écrase la destination sans demander confirmation.

Fenêtre de terminal
cp ~/config/important.conf ~/config/important.conf.bak && scp user@serveur:/config/new.conf ~/config/important.conf
Fenêtre de terminal
scp -l 100 fichier user@srv:/tmp/ # en pensant limiter à 100 Ko/s

Symptôme : transfert beaucoup plus lent que prévu, autour de 12,5 Ko/s.

Cause : -l s'exprime en Kbit/s ; 100 Kbit/s valent seulement ~12,5 Ko/s.

Fenêtre de terminal
scp -l 800 fichier user@srv:/tmp/ # 800 Kbit/s ≈ 100 Ko/s

Ce lab vous fait manipuler scp sur des fichiers réalistes, de l'envoi simple à la limitation de bande passante. Comptez 15 minutes.

Le script suivant crée des fichiers de test représentatifs d'une administration serveur :

Fenêtre de terminal
# Créer le lab
mkdir -p ~/scp-lab/{local,received}
cd ~/scp-lab/local
# Fichier de configuration typique
cat > config.conf << 'EOF'
# Configuration nginx
server {
listen 80;
server_name example.com;
root /var/www/html;
}
EOF
# Script de déploiement
cat > deploy.sh << 'EOF'
#!/bin/bash
echo "Déploiement en cours..."
systemctl restart nginx
echo "Déploiement terminé."
EOF
chmod +x deploy.sh
# Fichier de logs
for i in $(seq 1 50); do
echo "$(date -d "$i hours ago" '+%Y-%m-%d %H:%M:%S') INFO Événement $i" >> app.log
done
# Dossier avec sous-dossiers
mkdir -p projet/{src,docs,tests}
echo "print('hello')" > projet/src/main.py
echo "# Documentation" > projet/docs/README.md
echo "def test(): pass" > projet/tests/test_main.py
echo "Lab créé dans ~/scp-lab"
ls -laR ~/scp-lab/local

Pour tout nettoyer à la fin : rm -rf ~/scp-lab.

Ces huit étapes supposent un serveur SSH accessible : une machine virtuelle, un serveur de test, ou votre propre poste si sshd y tourne et que votre clé publique figure dans ~/.ssh/authorized_keys. Remplacez partout user@serveur par vos valeurs réelles. Traitez-les dans l'ordre : les étapes 1 à 3 posent la syntaxe, les étapes 4 à 8 ajoutent une option à la fois pour que vous puissiez identifier laquelle change quoi. Après chaque envoi, vérifiez le résultat côté distant avec ssh user@serveur "ls -l /tmp/".

  1. Copier un fichier vers un serveur, envoyez config.conf dans /tmp/ distant : scp ~/scp-lab/local/config.conf user@serveur:/tmp/. La syntaxe user@serveur:/chemin désigne la destination distante ; tout passe par SSH.

  2. Récupérer un fichier depuis un serveur, rapatriez /etc/hostname : scp user@serveur:/etc/hostname ~/scp-lab/received/. On inverse source et destination : le serveur devient la source.

  3. Copier un dossier complet, envoyez projet/ avec -r : scp -r ~/scp-lab/local/projet user@serveur:/tmp/. Sans -r, scp refuse de copier un dossier.

  4. Utiliser un port SSH personnalisé, pour un serveur sur le port 2222 : scp -P 2222 ~/scp-lab/local/deploy.sh user@serveur:/tmp/. Attention, c'est -P majuscule.

  5. Préserver les permissions, copiez deploy.sh en conservant le bit exécutable : scp -p ~/scp-lab/local/deploy.sh user@serveur:/tmp/. -p minuscule préserve permissions et dates.

  6. Transfert avec compression, envoyez app.log compressé : scp -C ~/scp-lab/local/app.log user@serveur:/tmp/. -C accélère le transfert des fichiers texte.

  7. Mode verbeux pour le debug, observez la négociation SSH : scp -v ~/scp-lab/local/config.conf user@serveur:/tmp/. -v affiche authentification, algorithmes et erreurs détaillées.

  8. Limiter la bande passante, plafonnez le débit à 800 Kbit/s : scp -l 800 ~/scp-lab/local/app.log user@serveur:/tmp/. Soit environ 100 Ko/s.

Ces exercices vont du premier transfert au diagnostic d'un échec. Lisez l'énoncé, cherchez la commande, puis dépliez la solution.

Exercice 1, Premier transfert. Envoyez le fichier config.conf vers le serveur web-01 dans /tmp/.

Indice : syntaxe scp fichier user@serveur:/chemin/.

Voir la solution
Fenêtre de terminal
scp config.conf admin@web-01:/tmp/

La syntaxe de base de scp : fichier local en premier, destination distante en second.

Exercice 2, Récupération de logs. Récupérez le fichier /var/log/syslog du serveur web-01 vers ~/logs/.

Indice : la source distante vient en premier.

Voir la solution
Fenêtre de terminal
scp admin@web-01:/var/log/syslog ~/logs/

Pour récupérer un fichier, la source distante est le premier argument, la destination locale le second.

Exercice 3, Transfert de dossier. Envoyez tout le dossier ~/projet/ vers /var/www/ sur le serveur prod.

Indice : -r est obligatoire pour les dossiers.

Voir la solution
Fenêtre de terminal
scp -r ~/projet/ deployer@prod:/var/www/

Sans -r, scp refuse de copier un dossier, c'est l'erreur la plus fréquente.

Exercice 4, Port SSH non standard. Envoyez backup.tar.gz vers un serveur qui utilise le port SSH 2222.

Indice : -P (majuscule) pour le port SSH.

Voir la solution
Fenêtre de terminal
scp -P 2222 backup.tar.gz admin@srv:/backups/

Attention à la casse : -P majuscule = port, -p minuscule = permissions.

Exercice 5, Transfert avec préservation. Envoyez un script en préservant ses permissions d'exécution.

Indice : -p préserve les permissions et dates.

Voir la solution
Fenêtre de terminal
scp -p deploy.sh admin@prod:/opt/scripts/

-p préserve les dates de modification et les permissions, dont le bit exécutable.

Exercice 6, Transfert entre deux serveurs. Copiez /var/log/app.log depuis web-01 vers backup-01 en passant par votre machine.

Indice : -3 utilise votre machine comme relais.

Voir la solution
Fenêtre de terminal
scp -3 admin@web-01:/var/log/app.log admin@backup-01:/logs/

-3 fait transiter les données par la machine locale. Sans -3, la connexion serait directe entre les deux serveurs.

Exercice 7, Options combinées. Envoyez un dossier avec compression, port 2222 et préservation des permissions.

Indice : les options scp se combinent librement.

Voir la solution
Fenêtre de terminal
scp -r -C -P 2222 -p ~/projet/ admin@srv:/var/www/

-r -C -P 2222 -p couvre la plupart des besoins d'un transfert un peu exigeant.

Exercice 8, Debug d'un transfert échoué. Diagnostiquez un transfert qui échoue en affichant les détails SSH.

Indice : -v affiche les détails de connexion SSH.

Voir la solution
Fenêtre de terminal
scp -v config.conf admin@srv:/tmp/

-v montre la négociation SSH : authentification, algorithmes et erreurs détaillées.

Quand un transfert échoue, ces méthodes de diagnostic et ces erreurs fréquentes couvrent la grande majorité des cas.

Quand un transfert échoue, la première question à trancher est : le problème vient-il de SSH ou de scp ? Les quatre commandes ci-dessous répondent dans cet ordre. Si ssh user@serveur "echo OK" fonctionne mais que scp échoue, la connexion et l'authentification sont hors de cause, cherchez du côté des droits d'écriture sur la destination ou du sous-système SFTP côté serveur. Si ssh échoue déjà, inutile de déboguer scp. La sortie de -v est verbeuse : la ligne utile est presque toujours la dernière avant l'échec.

Fenêtre de terminal
# Mode verbeux : tous les détails SSH et du transfert
scp -v fichier.txt user@serveur:/tmp/
# Tester la connexion SSH avant scp
ssh -v user@serveur "echo OK"
# Vérifier que le port SSH est ouvert
nc -zv serveur 22
# Tester avec un petit fichier pour isoler un problème de taille
echo "test" | ssh user@serveur "cat > /tmp/test.txt"

Ces cinq messages couvrent la quasi-totalité des échecs. Quatre d'entre eux viennent en réalité de SSH, pas de scp : seul not a regular file est propre à la copie. Traitez REMOTE HOST IDENTIFICATION HAS CHANGED! avec sérieux : le message signale que la clé d'hôte présentée ne correspond plus à celle enregistrée dans ~/.ssh/known_hosts. La cause bénigne est une réinstallation du serveur, mais supprimer l'entrée sans confirmer auprès de l'administrateur revient à accepter une éventuelle interception.

ErreurCause probableSolution
Permission deniedPas de droits d'écriture, ou dossier destination inexistantAjuster les permissions ou copier vers un dossier autorisé (/tmp/)
connect to host ... port 22: Connection refusedsshd arrêté, pare-feu, ou port différentDémarrer sshd, ouvrir le port, ou utiliser -P <port>
REMOTE HOST IDENTIFICATION HAS CHANGED!Serveur réinstallé, ou attaque MITM (rare)Vérifier avec l'admin, puis ssh-keygen -R serveur et reconnexion
not a regular fileCopie d'un dossier sans l'option -rAjouter -r pour copier récursivement
No space left on deviceDisque destination plein ou quota atteintVérifier avec ssh user@serveur "df -h", libérer de l'espace

À garder sous la main : la syntaxe générale et les options les plus utilisées au quotidien.

Trois formes suffisent pour tous les cas. Ce qui les distingue est la position du préfixe user@host: : à droite pour envoyer, à gauche pour récupérer, des deux côtés pour un transfert entre serveurs. Le point final dans la deuxième forme désigne le répertoire courant, un raccourci commode quand vous rapatriez un journal pour l'analyser sur place.

SyntaxeSignificationExemple
scp fichier user@host:/chemin/Envoyer un fichierscp app.conf admin@srv:/etc/
scp user@host:/chemin/fichier .Récupérer un fichierscp admin@srv:/var/log/app.log .
scp -3 user1@srv1:f user2@srv2:/Transfert inter-serveursscp -3 a@s1:/log b@s2:/log/

Les options se combinent librement et l'ordre n'a pas d'importance, à condition que chaque option attendant une valeur soit suivie de la sienne. Deux mises en garde sur les deux dernières lignes du tableau. -o StrictHostKeyChecking=no désactive la vérification de la clé d'hôte : réservez-le à un lab jetable, jamais à un script de production, où il annule la protection contre l'interception. Quant à -c, il n'est utile que pour interopérer avec un serveur ancien ; le choix par défaut d'OpenSSH est plus sûr que la plupart des algorithmes qu'on serait tenté de forcer.

SyntaxeSignificationExemple
-rCopie récursive (dossiers)scp -r dossier/ user@srv:/tmp/
-P <port>Port SSH (majuscule)scp -P 2222 f.txt user@srv:/
-pPréserve permissions et datesscp -p script.sh user@srv:/
-CActive la compressionscp -C dump.sql user@srv:/
-vMode verbeux (debug)scp -v f.txt user@srv:/
-qMode silencieuxscp -q f.txt user@srv:/
-l <Kbit/s>Limite la bande passantescp -l 800 f user@srv:/
-i <clé>Clé SSH privéescp -i ~/.ssh/key f user@srv:/
-o <option>Option SSH ponctuellescp -o StrictHostKeyChecking=no f srv:/
-c <algo>Algorithme de chiffrementscp -c aes256-ctr f user@srv:/

Vous maîtrisez scp quand vous pouvez cocher chacun de ces points sans hésiter :

  • Je sais envoyer un fichier vers un serveur distant.
  • Je sais récupérer un fichier depuis un serveur distant.
  • Je sais copier un dossier complet avec -r.
  • Je sais utiliser un port SSH personnalisé (-P).
  • Je sais préserver permissions et dates avec -p.
  • Je sais transférer entre deux serveurs via -3.
  • Je connais la différence entre -p et -P.
  • Je sais quand utiliser rsync à la place de scp.
  • Je sais diagnostiquer un problème de connexion avec -v.

Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

6 questions
6 min.
70% requis

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

  • -r : obligatoire pour copier un dossier
  • -P (majuscule) pour le port, -p (minuscule) pour les permissions
  • -v : indispensable pour diagnostiquer les problèmes SSH
  • Pas de reprise : si le transfert s'interrompt, il recommence
  • Préférer rsync pour les transferts réguliers ou volumineux
  • Synchroniser avec rsync : Synchronisation intelligente avec delta et reprise, l'outil complémentaire de scp pour les backups récurrents.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn