상황
appleboy/ssh-action 깃헙 액션 플러그인을 통해 aws ec2 로 연결 시도 시 다음과 같은 오류가 발생하였습니다.
[ERROR] ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
해당 태스크에 대응하는 github workflow 구성 파일 (yml) 은 다음과 같습니다.
- name: Deploy
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.STAGE_HOST }}
username: ${{ secrets.STAGE_HOST_USERNAME }}
key: ${{ secrets.STAGE_AWS_SECRET_KEY }}
envs: GITHUB_SHA
script: | ...
이때 github secret 환경 변수는 다음과 같습니다.
STAGE_HOST: ec2 의 public ip 주소
STAGE_HOST_USERNAME: ubuntu (기본값)
STAGE_AWS_SECRET_KEY: ec2 컨테이너 내부 ~/.ssh/authorized_keys 에 명시된 public key 에 대응하는 private key (pem 형식, $ cat {private_key}.pem 을 통해 출력된 값)
aws ec2 는 ubuntu linux 환경이었으며, ~/.ssh/authorized_key 에 명시된 public key 는 SHA-1 로 서명된 ssh-rsa 키였기에, 리눅스 SSH 설정 파일인 /etc/ssh/sshd_config 파일을 확인 후, ssh-rsa 를 지원하도록 설정되어 있는지 확인 후, 결론적으로 설정되지 않아 설정 후 해결하였습니다.
해결
1. ec2 접속 (ssh, 직렬 콘솔 등)
2. sshd_config 파일 수정 (기본적으로 readOnly 파일이기 때문에, sudo 를 통해 루트 권한으로 편집기를 열어줍니다)
$ cd /etc/ssh
$ sudo vi sshd_config
3. sshd_config에 PubkeyAcceptedKeyTypes=+ssh-rsa 구문 추가
4. ssh 시스템 서비스 재실행
$systemctl ssh restart
참고
https://github.com/appleboy/ssh-action/issues/96
https://boanchung.tistory.com/30
'dev etc.' 카테고리의 다른 글
npm install 할 때 자주뜨는 node-gyp ERR (0) | 2021.10.30 |
---|---|
Windows 에서 C++ 을 python처럼 사용하기 [jupyter C++ kernel] (0) | 2020.03.12 |
댓글