MODDO - Docker + Git Actions을 활용한 CI/CD 구축에서 발생한 오류 해결기

원지윤·2025년 1월 21일
0

MODDO 프로젝트

목록 보기
1/4

개발을 시작하기 전, 지속적인 배포 과정을 자동화하기 위해 Docker와 GitHub Actions를 활용한 CI/CD 환경을 구축하기로 했습니다.

먼저 workflows 파일을 작성했는데, 첫 실행에서 바로 문제가 발생했습니다. Error: Cannot perform an interactive login from a non TTY device 오류가 나타났고, 이를 해결하기 위해 여러 방법을 시도했지만 성공하지 못했습니다.

ChatGPT에도 질문한 결과 비밀번호 기반 접속보다 SSH 키를 등록하는 방식이 더 안전하고 권장된다는 조언을 받았습니다. 이에 접속 방법을 변경하기로 결정했습니다. 하지만 문제는 여기서 끝나지 않았고 곧 두 가지 오류가 번갈아 발생하는 악순환에 빠지게 되었습니다.

ssh.ParsePrivateKey: ssh: no key found

ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain

사실 두 번째 에러는 첫 번째 에러가 해결되면 자연스럽게 해결될 문제라고 판단하여, 첫 번째 에러 해결에 집중했습니다.

'키를 찾을 수 없다'는 오류 메시지를 보고 키 자체에 문제가 있다고 생각했습니다. 먼저 RSA 키 형식을 올바르게 맞추기 위해 다음과 같이 헤더와 푸터를 추가했습니다:

-----BEGIN RSA PRIVATE KEY-----

-----END RSA PRIVATE KEY-----

하지만 이 방법으로도 동일한 오류가 계속 발생했습니다:

ssh.ParsePrivateKey: ssh: no key found

ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain

다음으로 서버의 SSH 설정을 수정해보았습니다. /etc/ssh/sshd_config 파일에 다음 내용을 추가했습니다:

PubkeyAuthentication yes
PubkeyAcceptedKeyTypes=+ssh-rsa

이 방법도 효과가 없어서 SSH 포트가 기본값(22)인 경우 포트 지정을 생략할 수 있다는 정보를 바탕으로 포트 번호도 명시적으로 지정해보았습니다. 또한 GitHub Secrets에 설정한 변수가 제대로 전달되고 있는지도 확인했지만 모든 부분이 정상으로 보였습니다.

한참을 고민한 끝에 근본적인 문제를 발견했습니다. SSH 키는 비대칭키 방식으로 공개키와 개인키가 쌍으로 작동합니다. 서버에는 공개키를 등록하고 인증 시에는 개인키(비밀키)를 사용해야 합니다. 그런데 저는 실수로 GitHub Secrets에 개인키가 아닌 공개키를 등록해버린 것이었습니다. 이것이 모든 문제의 원인이었습니다.

하지만 저는 실수로 명령어를 변경하지 않고 개인키를 확인하기 위해 서버에 공개키를 등록할 때 사용했던 명령어를 그대로 활용했습니다.

cat ~/.ssh/(키 이름)      # 개인키
cat ~/.ssh/(키 이름).pub  # 공개키

올바른 개인키를 출력하여 GitHub Secrets 변수 값을 수정하니 드디어 모든 오류가 해결되었고 CI/CD 구축을 성공적으로 마무리할 수 있었습니다.

Ref

https://bk0625.tistory.com/94

https://chana.tistory.com/entry/ec2-appleboyssh-action-ssh-handshake-failed-ssh-unable-to-authenticate-attempted-methods-none-publickey-no-supported-methods-remain-%EC%98%A4%EB%A5%98-%EB%B0%9C%EC%83%9D-%EC%8B%9C

https://github.com/appleboy/ssh-action/issues/6

0개의 댓글