이 파이프라인을 사용하여 gitlab ci 파이프라인의 서버에 gitlab 저장소를 배포하려고 합니다.
stages:
- deploy
deploy:
stage: deploy
only:
- main
before_script:
- apk add --update --no-cache openssh
- install -m 600 -D /dev/null ~/.ssh/id_rsa
- echo "$SSH_PRIVATE_KEY" | base64 -d > ~/.ssh/id_rsa
- cat ~/.ssh/id_rsa
- ssh-keyscan -H $SSH_HOST > ~/.ssh/known_hosts
- echo $SSH_USER
- echo $SSH_HOST
script:
- ssh $SSH_USER@$SSH_HOST "cd $WORK_DIR && git checkout $MAIN_BRANCH && git pull && exit"
after_script:
- rm -rf ~/.ssh
변수 이름에는 예상 데이터가 들어 있고 실행 후 해당 실행기에 저장된 개인 키를 디버깅했는데 before_script
연결하려는 컴퓨터에 있는 것과 동일한 것으로 보이며 다른 모든 변수에는 올바른 값.
하지만 이 파이프라인을 실행하면 배포 서버에 SSH를 통해 연결하려고 할 때 이러한 오류가 발생합니다.
Permission denied, please try again.
Permission denied, please try again.
SSH_USER@SSH_HOST : Permission denied (publickey,password).
(이해를 돕기 위해 user,host 값은 변수명으로 대체하였습니다.)
이상한 점은 아무 문제 없이 비밀번호 없이 내 컴퓨터에서 이 서버로 SSH를 통해 연결할 수 있다는 것입니다.
docker gitlab runer의 OS는 Alpine
이고 배포 서버의 OS는 입니다 Debian 11
.
내 배포 서버가 올바른 개인 키를 사용하여 이 SSH 로그인을 인식하지 못하는 이유를 아는 사람이 있습니까?