56 lines
1.7 KiB
Bash
Executable File
56 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
|
||
# Script de configuration SSH pour CI/CD (template Linux)
|
||
# Utilise automatiquement la clé SSH pour les opérations Git
|
||
|
||
GITEA_HOST="${GITEA_HOST:-git.4nkweb.com}"
|
||
|
||
echo "🔑 Configuration automatique de la clé SSH pour CI/CD..."
|
||
|
||
if [ -n "${CI:-}" ]; then
|
||
echo "✅ Environnement CI détecté"
|
||
|
||
if [ -n "${SSH_PRIVATE_KEY:-}" ]; then
|
||
echo "🔐 Configuration de la clé SSH privée..."
|
||
mkdir -p ~/.ssh && chmod 700 ~/.ssh
|
||
printf "%s" "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
|
||
chmod 600 ~/.ssh/id_rsa
|
||
|
||
if [ -n "${SSH_PUBLIC_KEY:-}" ]; then
|
||
printf "%s" "$SSH_PUBLIC_KEY" > ~/.ssh/id_rsa.pub
|
||
chmod 644 ~/.ssh/id_rsa.pub
|
||
fi
|
||
|
||
cat > ~/.ssh/config << EOF
|
||
Host ${GITEA_HOST}
|
||
HostName ${GITEA_HOST}
|
||
User git
|
||
IdentityFile ~/.ssh/id_rsa
|
||
StrictHostKeyChecking no
|
||
UserKnownHostsFile=/dev/null
|
||
EOF
|
||
chmod 600 ~/.ssh/config
|
||
|
||
echo "🧪 Test SSH vers ${GITEA_HOST}..."
|
||
ssh -T git@"${GITEA_HOST}" 2>&1 || true
|
||
|
||
git config --global url."git@${GITEA_HOST}:".insteadOf "https://${GITEA_HOST}/"
|
||
echo "✅ Configuration SSH terminée"
|
||
else
|
||
echo "⚠️ SSH_PRIVATE_KEY non défini, bascule HTTPS"
|
||
fi
|
||
else
|
||
echo "ℹ️ Environnement local détecté"
|
||
if [ -f ~/.ssh/id_rsa ] || [ -f ~/.ssh/id_ed25519 ]; then
|
||
echo "🔑 Clé SSH locale trouvée"
|
||
git config --global url."git@${GITEA_HOST}:".insteadOf "https://${GITEA_HOST}/"
|
||
echo "✅ Configuration SSH locale terminée"
|
||
else
|
||
echo "⚠️ Aucune clé SSH trouvée; configuration manuelle requise"
|
||
fi
|
||
fi
|
||
|
||
echo "🎯 Configuration SSH CI/CD terminée"
|
||
|