문제:
- 직접 echo로 SSH 키 작성 시 개행 문자 손실
- "error in libcrypto" 오류 발생
- SSH 키 형식 손상
해결:
- ${{ secrets.DEPLOY_SSH_KEY }}를 base64 인코딩된 형식으로 저장
- CI에서 base64 -d로 디코딩하여 원본 키 복원
- UserKnownHostsFile /dev/null 추가 (known_hosts 자동 관리)
- 설정 검증 로깅 추가
사용자 조치 필요:
1. SSH 개인 키를 base64로 인코딩: `cat ~/.ssh/id_ed25519 | base64`
2. 결과를 DEPLOY_SSH_KEY secret에 저장
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -50,16 +50,19 @@ jobs:
|
|||||||
- name: Setup SSH key
|
- name: Setup SSH key
|
||||||
run: |
|
run: |
|
||||||
mkdir -p ~/.ssh
|
mkdir -p ~/.ssh
|
||||||
echo "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/deploy_key
|
echo "${{ secrets.DEPLOY_SSH_KEY }}" | base64 -d > ~/.ssh/deploy_key
|
||||||
chmod 600 ~/.ssh/deploy_key
|
chmod 600 ~/.ssh/deploy_key
|
||||||
cat >> ~/.ssh/config << EOF
|
cat >> ~/.ssh/config << 'EOF'
|
||||||
Host deploy
|
Host deploy
|
||||||
HostName ${{ secrets.DEPLOY_HOST }}
|
HostName ${{ secrets.DEPLOY_HOST }}
|
||||||
User ${{ secrets.DEPLOY_USER }}
|
User ${{ secrets.DEPLOY_USER }}
|
||||||
IdentityFile ~/.ssh/deploy_key
|
IdentityFile ~/.ssh/deploy_key
|
||||||
StrictHostKeyChecking no
|
StrictHostKeyChecking no
|
||||||
|
UserKnownHostsFile /dev/null
|
||||||
EOF
|
EOF
|
||||||
chmod 644 ~/.ssh/config
|
chmod 644 ~/.ssh/config
|
||||||
|
echo "=== SSH Key Setup Complete ==="
|
||||||
|
ls -la ~/.ssh/
|
||||||
|
|
||||||
- name: Deploy Web
|
- name: Deploy Web
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
Reference in New Issue
Block a user