diff --git a/DEPLOY.adoc b/DEPLOY.adoc index 78eb31a..7143094 100644 --- a/DEPLOY.adoc +++ b/DEPLOY.adoc @@ -59,6 +59,11 @@ usermod -aG www-data deploy # Répertoire de l'application mkdir -p /var/www/annu-kute-ced chown -R deploy:www-data /var/www/annu-kute-ced + +# Répertoire SSH de l'utilisateur deploy (préparé pour les clés publiques) +mkdir -p /home/deploy/.ssh +chmod 700 /home/deploy/.ssh +chown -R deploy:deploy /home/deploy/.ssh ---- == 3️⃣ Clone du dépôt @@ -200,15 +205,61 @@ Ouvrir le site dans un navigateur : vidéos, podcasts, timeline et le bouton d'i == 8️⃣ Clé SSH du CI -C'est la clé utilisée par le runner Gitea Actions pour déployer. Elle est *différente* de la deploy key de lecture (étape 3) : celle-ci doit pouvoir écrire dans le clone. +C'est la clé utilisée par le runner Gitea Actions pour se connecter au serveur et déployer. Elle est *différente* de la deploy key de lecture (étape 3) : celle-ci doit pouvoir écrire dans le clone. + +Générez la paire de clés *sur votre poste local* (pas sur le serveur), puis transférez la clé publique sur le serveur pour l'autoriser. [source,bash] ---- -# Générer la paire SUR VOTRE POSTE (pas sur le serveur) +# Sur votre poste local ssh-keygen -t ed25519 -f annu-kute-ced-deploy -C "ci-gitea-annu-kute-ced" -# Autoriser la clé publique pour l'utilisateur deploy -sudo -u deploy tee -a /home/deploy/.ssh/authorized_keys < annu-kute-ced-deploy.pub +# Affichez la clé publique (elle doit être copiée sur le serveur) +cat annu-kute-ced-deploy.pub +---- + +=== Transfert de la clé publique sur le serveur + +Option A — copie directe avec `scp` (depuis votre poste) : + +[source,bash] +---- +# Sur votre poste local (adapter user@serveur si vous ne vous connectez pas en root) +scp annu-kute-ced-deploy.pub root@:/tmp/annu-kute-ced-deploy.pub + +# Puis sur le serveur, ajoutez-la au fichier authorized_keys de deploy +sudo -u deploy mkdir -p /home/deploy/.ssh +sudo -u deploy tee -a /home/deploy/.ssh/authorized_keys < /tmp/annu-kute-ced-deploy.pub +---- + +Option B — connexion SSH sur le serveur, puis création manuelle du fichier : + +[source,bash] +---- +# Sur le serveur, connecté en root ou avec sudo +sudo -u deploy mkdir -p /home/deploy/.ssh +sudo -u deploy tee -a /home/deploy/.ssh/authorized_keys +# Coller le contenu de annu-kute-ced-deploy.pub, puis Ctrl+D +---- + +Quelle que soit la méthode, vérifiez les permissions : + +[source,bash] +---- +chown -R deploy:deploy /home/deploy/.ssh +chmod 700 /home/deploy/.ssh +chmod 600 /home/deploy/.ssh/authorized_keys +---- + +=== Test de la connexion CI + +Avant d'enregistrer la clé privée dans Gitea, testez depuis votre poste que la connexion fonctionne avec la clé privée générée : + +[source,bash] +---- +# Sur votre poste local +ssh -i annu-kute-ced-deploy deploy@ "whoami && hostname" +# Attendu : "deploy" et le nom du serveur, sans mot de passe demandé ---- La clé privée (`annu-kute-ced-deploy`, sans passphrase) ira dans les secrets Gitea à l'étape suivante. *Conservez-la en lieu sûr et ne la commitez jamais.*