인프런 커뮤니티 질문&답변

김우철님의 프로필 이미지

작성한 질문수

비전공자도 이해할 수 있는 CI/CD 입문·실전

[실습] 개인 프로젝트에서 많이 쓰는 CI/CD 구축 방법 - 2

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

24.08.12 16:21 작성

·

149

0

image.png

구글링해서 나온건 다따라해봤는데 ,...안돼네요 강사님 하신거랑 똑같이했는데 메시지는 키값을못찾는다고나오는거같은데...

이거 방법이 없을까요

답변 3

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

2024. 08. 21. 14:43

이 에러 상황을 만나신 분들을 위해 해결방법 정리해드리겠습니다!

 

Github Actions 코드에서 변수명을 일치하지 않게 작성해서 에러가 발생하는 경우가 많습니다.

key: ${{ secrets.EC2_PRIVATE_KEY }}
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER_NAME }}
port: ${{ secrets.SSH_PORT }}

 

예를 들면, Github Actions 코드에서는 secrets.EC2_USER_NAME이라고 작성했는데,

Git Secret에 등록할 때는 EC2_USERNAME으로 작성해버려서 문제가 발생하는 경우가 있습니다!

 

이와 같이 변수명에서 틀린 부분이 없는 지 체크해보시면 좋을 것 같아요:D

0

김우철님의 프로필 이미지
김우철
질문자

2024. 08. 13. 23:18

전체코드입니다

 

name: Deploy To EC2

on:

push:

branches:

- main

jobs:

Deploy:

runs-on: ubuntu-latest

steps:

- name: github repository에 올린 파일들을 불러오기

uses: actions/checkout@v4

- name: JDK 17버전 설치

uses: actions/setup-java@v4

with:

distribution: temurin

java-version: 17

- name: application.yml 만들기

run: echo "${{ secrets.APPLICATION_PROPERTIES }}" > ./src/main/resources/application.yml

- name: 테스트 및 빌드

run: |

chmod +x gradlew

./gradlew clean build

- name: AWS Resource 에 접근할수있게 AWS credentials 설정

uses: aws-actions/configure-aws-credentials@v4

with:

aws-region: ap-northeast-2

aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}

aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

- name: ECR에 로그인하기

id: login-ecr

uses: aws-actions/amazon-ecr-login@v2

- name: Docker 이미지 생성

run: docker build -t instagram .

# 쩜 이라는건 현재경로에있는 도커파일을 기반으로 이미지파일을 생성한다는 의미

- name: Docker 이미지에 Tag붙이기

run: docker tag instagram ${{ steps.login-ecr.outputs.registry }}/instagram:latest

#steps.login-ecr.에 결과값(output)에 registry라는게있는거임

#주소에 :latest 라는 태그를 다는거임

- name: ECR에 Docker이미지 Push

run: docker push ${{ steps.login-ecr.outputs.registry }}/instagram:latest

# - name: 빌드된 파일 이름 변경하기

# run: mv ./build/libs/*SNAPSHOT.jar ./project.jar

# - name: SCP로 EC2에 빌드된 파일 전송!!

# uses: appleboy/scp-action@v0.1.7

# with:

# host: ${{secrets.EC2_HOST }}

# username: ${{ secrets.EC2_USER_NAME }}

# key: ${{ secrets.EC2_PRIVATE_KEY }}

# source: project.jar

# target: /home/ubuntu/instagram/tobe

- name: SSH 로 EC2접속

uses: appleboy/ssh-action@v0.1.4

with:

key: ${{ secrets.EC2_PRIVATE_KEY }}

host: ${{ secrets.EC2_HOST }}

username: ${{ secrets.EC2_USER_NAME }}

port: ${{ secrets.SSH_PORT }}

script_stop: true

script: |

docker stop instagram || true

docker rm instagram || true

docker pull ${{ steps.login-ecr.outputs.registry }}/instagram:latest

docker run -d --name instagram -p 8080:8080 ${{ steps.login-ecr.outputs.registry }}/instagram:latest

 

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

2024. 08. 14. 08:51

안녕하세요 우철님!

보여주신 Github actions 코드에서는 크게 문제가 되는 부분이 있어보이진 않네요!

 

지금 발생한 에러 메시지로 봤을 때는 appleboy/ssh-action의 코드 부분에서

key, host, username, port에서 잘못입력한 게 있을 경우

발생할 수도 있는 에러로 보입니다!

혹시 이 부분도 잘 값이 등록되어 있는 지 체크 한 번 해봐주실 수 있을까요 ?

 

혹시 이걸 체크했는데도 잘 안 되신다면 아래 카톡 링크로 카톡 한 번 부탁드릴게요~~

https://open.kakao.com/o/sHdY8yrg

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

2024. 08. 14. 08:53

우철님! ssh-action의 버전 문제 때문에 발생한 문제일 수도 있겠네요!

uses: appleboy/ssh-action@v1.0.3

위의 버전으로 수정 한 번 해보시겠어요~??

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

2024. 08. 13. 11:53

안녕하세요 우철님!

디버깅을 위해 작성하신 Github Actions 코드 복사해서 그대로 한 번 보여주실 수 있을까요~??

같이 디버깅 도와드리겠습니다!