[Node] git action을 이용한 CD(1)

김나나·2024년 9월 14일

Node.js

목록 보기
44/50

나에게는 꽤나 어려웠던 자동배포를 위한 우분투 서버 <=> 로컬PC 연결..
정말 별 것 아닌게 문제였는데,
이걸 모르고 계속 삽질을 그렇게 했다니ㅜㅜ..
3일간 2-3시간자며 겨우 이해했으니, 잊지 않도록 적어야겠다..!


링크 게시글 많이 참고하며 진행
위 글 보며 우분투에 git설치, git 관리자용 사용자 추가, SSH 디렉토리, 인증파일 생성은 했음!

+) 추가로

git config --global user.name "kimLrLr"
git config --global user.email "rimiha9708@gmail.com"

이런 식으로 git config도 해줌


✔VM을 이용해서 우분투 서버 이용 시, 꼭 포트포워딩을 해주자..

  1. 버추얼박스에 서버로 이용할 우분투 클릭하고 설정 눌러주기 -> 설정에서 네트워크 -> "고급" 클릭 -> 포트포워딩 버튼 클릭

  1. 규칙 설정!!
    호스트IP는 내 로컬PC의 IP (내 IP 사용은 127.0.0.1 작성하면 된다!) 호스트 포트는 접속할 포트, 게스트IP는 우분투 내에 ifconfig 검색하면 나오는 IP인데 다 동일하게 10.0.2.15인 것으로 확인되어짐. 게스트 포트는 서버에서 LISTEN할 포트번호인데 지정해주지 않으면 보통 22번 포트를 쓰기 때문에 22번으로 넣어준다.


✔윈도우에서 SSH 공개키 발급

  1. 윈도우 cmd창을 열고,
ssh-keygen -t rsa -b 4096 -N ""

위 명령어로 공개키, 비공개키 1개씩 발급.
이 때, 경로는 키 쌍은 C:\Users\user\.ssh 경로에 위치한다.
( -N ""를 넣어준 이유는 자동배포 하려면 비밀번호를 넣으면 연결이 힘들기 때문에..😭)

명령어 치면 나오는 Enter file in which to save the key는 위치 저기하면 되냐? 같은 내용이니 별 특별한 일 없으면 그냥 Enter..


확인해보면 잘 들어가있다.

  1. 이후, .ssh폴더에 authorized_keys.txt파일을 하나 생성해 id_rsa.pub이라는 이름의 공개키를 복사해 넣어준다.

  2. id_rsa 우클릭해서 속성 열고, 보안 탭에서 고급 클릭!

고급 보안 설정 창 나오면 "상속 사용 안 함" 클릭!

상속된 권한은 모두 제거해주고,
"추가"버튼 눌러 보안 주체 클릭!

선택할 개체 이름에는 본인 윈도우 계정 이름 적어주기(MS 계정이면 메일 주소)


권한은 이렇게 두 개 체크하고 적용해준다.


✔리눅스(우분투)에서 SSH 공개키 발급

하기 전, 앞전에 한 것들 헷갈리니, .ssh폴더 안에 있는 기존의 authorized_keys 내용 삭제하고, key 발급 받아진 것들도 삭제해주자.

  1. 터미널 창에 아래 명령어 작성.
    키 만드는 명령어라 같음!
ssh-keygen -t rsa -b 4096 -N ""

그 다음에 pub파일 authorized_keys에 복사

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  1. 이후, 홈 디렉토리 권한 755로 설정 (사용자 이름 kimlrlr라고 되어있는 부분임)
chmod 755 /home/kimlrlr

입력 후,
소유권 확인 및 수정 방법은

sudo chown -R kimlrlr:kimlrlr /home/kimlrlr

이러고도 오류 생길 수 있으니..
SSH 디렉토리와 authorized_keys 파일 권한 확인해주기

chmod 700 /home/kimlrlr/.ssh
chmod 600 /home/kimlrlr/.ssh/authorized_keys
  1. 아래 명령어로 설정 바꿔줘야함..
sudo nano /etc/ssh/sshd_config
  1. PORT 22 주석 해제
  2. HostKey /etc/ssh/ssh_host_rsa_key 주석 해제
  3. PermitRootLogin yes
  4. PubkeyAuthentication yes
  5. AuthorizedKeysFile .ssh/authorized_keys 주석 해제
  6. PasswordAuthentication no

설정 해줬으면 ctrl + o 누른 다음 Enter키 눌러 저장하고,
ctrl + x키로 나가주자!

  1. 설정 바꿨으면 아래 명령어로 ssh 재시작 해주기!
sudo systemctl restart ssh
sudo systemctl restart sshd

참고로 잘 돌아가고 있는지 서버 상태 보려면 아래 명령어 사용!

sudo systemctl status ssh
sudo systemctl status sshd

잘 되고 있으면 아래처럼 나온다!

  1. 방화벽 설정 확인하려면 아래 명령어
sudo ufw status verbose

만일 상태가 활성화 되어있지 않으면 아래 명령어로 열어준다.

sudo ufw enable
sudo ufw allow 포트번호

그럼 아래처럼 규칙이 추가되었다고 뜸

  1. 여기까지 했으면!!! 로컬PC에서 받은 공개키(id_rsa.pub) 서버에 있는 authorized_key파일에 넣어주기!!!!!!
    넣어줄 때는 Enter키 한 번만 딱 해서 키 구분해주는 것 말고 다른 거 건들지XXxxxx!!

✔윈도우 터미널 창에서 아래 명령어로 접속 테스트

아래 명령어로 찾아서 접속!

ssh -i ~/.ssh/id_rsa -p 포트번호 userName@IP

포트번호 없는 경우에는 -p 포트번호 부분 안써도 된다.

업로드중..


[WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!] 에러

C:\Users\user\.ssh경로에 있는 known_hosts파일에 접속하려던 IP로 된 기록 지우기


호오옥시 이러고도 계속 연결 안되는 경우,

sudo tail -f /var/log/auth.log

리눅스 커맨드창에 쳐서 넣은 다음 연결해보면 오류코드 뜬다!!

profile
10분의 정리로 10시간을 아낄 수 있다는 마음으로 글을 작성하고 있습니다💕

0개의 댓글