VM 인스턴스에 SSH 연결 설정
로컬 머신에서 SSH 인증서 생성
Section titled “로컬 머신에서 SSH 인증서 생성”- VM 인스턴스에 접속하기 위해 SSH 인증서를 생성해야 한다.
- 로컬 머신에서 아래 명령어를 실행하여 SSH 인증서를 생성한다.
Terminal window ssh-keygen -t rsa -f ~/.ssh/${KEY_FILENAME} -C ${USERNAME}- KEY_FILENAME: 키 파일명 (예 - domain-ssh-key)
- USERNAME: 원격 SSH 서버에 접속할 사용자 ID (예 - GCP인 경우 google ID)
- 키 파일 생성 확인
Terminal window ls -al ~/.ssh/${KEY_FILENAME}* - 공개키와 비밀키 파일이 하나씩 생긴 것을 확인한다.
- 공개키:
${KEY_FILENAME}.pub - 비밀키:
${KEY_FILENAME}
- 공개키:
- 젠킨스에서 SSH 방식으로 VM 인스턴스에 배포할 때, 배포 장비에도 SSH 인증서를 생성해야 한다. 절차는 동일하다.
SSH 연결 테스트
Section titled “SSH 연결 테스트”- 로컬 머신 (또는 도커 컨테이너)에서 아래 명령어를 실행하여 SSH 연결을 테스트한다.
Terminal window ssh -i ~/.ssh/${KEY_FILENAME} ${USERNAME}@${EXTERNAL_IP}
젠킨스에서 SSH 인증서 관리
Section titled “젠킨스에서 SSH 인증서 관리”- 젠킨스에서 SSH 방식으로 VM 인스턴스에 배포할 때, 젠킨스 서버에도 SSH 인증서를 생성해야 한다. 절차는 위와 동일하다.
- 배포 전에 반드시 CLI 로 접속 테스트하고, 핑거프린트 메시지가 나올때 yes를 입력해주어야 젠킨스에서 배포시 문제가 발생하지 않는다.
$ ssh -i ~/.ssh/ssh_key foobar@xx.xx.xx.xxThe authenticity of host 'xx.xx.xx.xx (xx.xx.xx.xx)' can't be established.ED25519 key fingerprint is SHA256:KLuxKVpg1cOInZjB8F/i+5j/iSXrv2b5K4okO53zjdA.This key is not known by any other names.Are you sure you want to continue connecting (yes/no/[fingerprint])? yesWarning: Permanently added 'xx.xx.xx.xx' (ED25519) to the list of known hosts.Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 6.8.0-1032-gcp x86_64)
- 도커로 젠킨스를 구동하는 경우, 도커 컨테이너 재기동시에 ~/.ssh 디렉토리가 초기화되는 문제가 발생한다.
- 영속적으로 관리되는 /var/jenkins_home 디렉토리에 SSH 공개키를 백업해두는걸 추천한다.
Terminal window tar zcvf /var/jenkins_home/ssh_backup.tar.gz ~/.ssh - ~/.ssh 디렉토리가 초기화됐을 경우 복구한다.
Terminal window tar zxvf /var/jenkins_home/ssh_backup.tar.gz -C /tmpmv /tmp/.ssh ~/.ssh
- 영속적으로 관리되는 /var/jenkins_home 디렉토리에 SSH 공개키를 백업해두는걸 추천한다.
GCP 메타데이터에 SSH 공개키를 등록하는 절차
Section titled “GCP 메타데이터에 SSH 공개키를 등록하는 절차”- Dashboard -> Compute Engine -> 좌측메뉴 -> 설정 -> 메타데이터 -> 탭에서
SSH 키선택 수정버튼 클릭 ->항목 추가버튼 클릭- 공개키 파일의 내용을 복사한 뒤
저장버튼 클릭