SSH Public 키 접속
깃허브 액션으로 CI/CD를 구현하는데 리눅스는 서버 쪽에 좀 챙겨할 부분이 있어서 정리 합니다.
1. 공개키 / 비밀키를 생성
ssh-keygen -t rsa -b 4096 -f 키이름
그러면 이름으로 public 키와 private 키가 만들어짐.
이때 passphrase는 공백으로 만들어줌.
public 을 열어서 서버의 ~/.ssh/authorized_keys 파일을 열어서 복사한 내용을 한줄 추가.
2. 파일 권한을 변경해야 함. (이걸 안해서 키만 엄청 만들었음.)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
3. sshd_config 수정 (기본적으로 설정이 안되어있음)
/etc/ssh/sshd_config
PubkeyAuthentication yes
PasswordAuthentication no
AuthorizedKeysFile .ssh/authorized_keys
수정후 ssh 재시작
sudo systemctl reload sshd
4. cmd 창열어서 priavte 키 있는곳에 가서 접속
ssh -i 비밀키파일명 -p 포트 사용자계정@서버ip
깃허브가서 변수를 추가한다.
REMOTE_SSH_HOST -> 서버 ip
REMOTE_SSH_KEY -> 비밀키를 다 복사해서 붙여넣는다.
REMOTE_SSH_USERNAME -> 서버 user
REMOTE_SSH_PORT -> 서버 ssh 포트
# Repo Action 페이지에 나타날 이름
name: Application Deploy
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Start server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.REMOTE_SSH_HOST }}
username: ${{ secrets.REMOTE_SSH_USERNAME }}
key: ${{ secrets.REMOTE_SSH_KEY }}
port: ${{ secrets.REMOTE _SSH_PORT }}
script: |
sudo docker restart app