Github Action

Github Action ssh: handshake failed 에러

woozxn 2022. 8. 29. 19:12

문제 발생

Github Action을 사용하여 CI/CD를 구현하던 중 Deploy 부분에서 계속해서

ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain 에러가 발생해서 애를 먹고있었다..

계속해서 문제가 발생한 Deploy부분의 코드는 다음과 같다.

 

문제해결을 위해 진행한 방법

1. 처음에는 레포지토리 등록한 secrets값에 문제가 있어서 발생하는 문제인가해서 EC2_HOST 값을 반복해서 다시 설정해보기도 하고

아예 ec2에서 HOST name을 바꿔서 시도하여 보기도 하였다.

2. HOST에는 문제가 없음을 확인하고 PRIVATE_KEY값을 확인하기위해 pem파일의 PRIVATE_KEY값을 다시 secret에 등록하여 재시도해보기도하고 ssh-keygen -t ed25519 -a 200 -C "[your_email@example.com]" 명령어로 PRIVATE_KEY를 생성해서 바꿔보기도 하였다.

3. 다른 해결방법을 찾아보던중 appleboy의 버전을 바꿔서 해결했다는 글을 보고 master -> v0.1.4로 바꾸어 진행하여보았다.

 

위의 3가지 방법이 모두 효과가 없었고 결론은 workflow에 크게 이상은 없다는 결론을 내렸다.

 

고민끝에 문제를 해결한 방법은 다음과 같다

 

해결방법

해결방법은 생각보다 간단했다.

ssh log를 살펴보고 ec2/etc/ssh/sshd_config 위치에 코드 2줄을 추가해주었다.

PubkeyAuthentication yes
PubkeyAcceptedKeyTypes=+ssh-rsa

위의 코드 2줄을 추가한 후 ssh server를 재시동하여 주면 ssh handshake failed 에러를 해결할 수 있었다.

 

이상으로 위와 같은 방법으로 ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain 문제를 해결하였다.

 

Reference

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