fix: improve SSH key handling with validation and debugging
- Use printf instead of echo for proper SSH key formatting - Add ssh-keygen validation before attempting connection - Show first 50 chars of key on validation failure for debugging - Maintains proper line endings and key structure This will help identify if the SSH_PRIVATE_KEY secret is malformed.
This commit is contained in:
@@ -26,8 +26,23 @@ jobs:
|
|||||||
# Setup SSH
|
# Setup SSH
|
||||||
mkdir -p ~/.ssh
|
mkdir -p ~/.ssh
|
||||||
chmod 700 ~/.ssh
|
chmod 700 ~/.ssh
|
||||||
echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/deploy_key
|
|
||||||
|
# Write SSH key with proper formatting
|
||||||
|
printf '%s\n' "$SSH_PRIVATE_KEY" > ~/.ssh/deploy_key
|
||||||
chmod 600 ~/.ssh/deploy_key
|
chmod 600 ~/.ssh/deploy_key
|
||||||
|
|
||||||
|
# Validate SSH key format
|
||||||
|
echo "🔍 Validating SSH key..."
|
||||||
|
if ! ssh-keygen -l -f ~/.ssh/deploy_key >/dev/null 2>&1; then
|
||||||
|
echo "❌ Invalid SSH key format!"
|
||||||
|
echo "Key preview (first 50 chars):"
|
||||||
|
head -c 50 ~/.ssh/deploy_key
|
||||||
|
echo ""
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "✅ SSH key validation passed"
|
||||||
|
|
||||||
|
# Add host to known_hosts
|
||||||
ssh-keyscan -p $SSH_PORT -H $SSH_HOST >> ~/.ssh/known_hosts 2>/dev/null
|
ssh-keyscan -p $SSH_PORT -H $SSH_HOST >> ~/.ssh/known_hosts 2>/dev/null
|
||||||
|
|
||||||
# Pull latest code and restart service
|
# Pull latest code and restart service
|
||||||
@@ -71,7 +86,7 @@ jobs:
|
|||||||
echo "🔍 Verifying deployment..."
|
echo "🔍 Verifying deployment..."
|
||||||
|
|
||||||
# Setup SSH for verification
|
# Setup SSH for verification
|
||||||
echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/deploy_key
|
printf '%s\n' "$SSH_PRIVATE_KEY" > ~/.ssh/deploy_key
|
||||||
chmod 600 ~/.ssh/deploy_key
|
chmod 600 ~/.ssh/deploy_key
|
||||||
|
|
||||||
# Test health endpoint
|
# Test health endpoint
|
||||||
|
|||||||
Reference in New Issue
Block a user