Skip to content

VM 인스턴스에 SSH 연결 설정

  1. VM 인스턴스에 접속하기 위해 SSH 인증서를 생성해야 한다.
    • 로컬 머신에서 아래 명령어를 실행하여 SSH 인증서를 생성한다.
    Terminal window
    ssh-keygen -t rsa -f ~/.ssh/${KEY_FILENAME} -C ${USERNAME}
    1. KEY_FILENAME: 키 파일명 (예 - domain-ssh-key)
    2. USERNAME: 원격 SSH 서버에 접속할 사용자 ID (예 - GCP인 경우 google ID)
  2. 키 파일 생성 확인
    Terminal window
    ls -al ~/.ssh/${KEY_FILENAME}*
  3. 공개키와 비밀키 파일이 하나씩 생긴 것을 확인한다.
    1. 공개키: ${KEY_FILENAME}.pub
    2. 비밀키: ${KEY_FILENAME}
  4. 젠킨스에서 SSH 방식으로 VM 인스턴스에 배포할 때, 배포 장비에도 SSH 인증서를 생성해야 한다. 절차는 동일하다.
  1. 로컬 머신 (또는 도커 컨테이너)에서 아래 명령어를 실행하여 SSH 연결을 테스트한다.
    Terminal window
    ssh -i ~/.ssh/${KEY_FILENAME} ${USERNAME}@${EXTERNAL_IP}
  1. 젠킨스에서 SSH 방식으로 VM 인스턴스에 배포할 때, 젠킨스 서버에도 SSH 인증서를 생성해야 한다. 절차는 위와 동일하다.
  2. 배포 전에 반드시 CLI 로 접속 테스트하고, 핑거프린트 메시지가 나올때 yes를 입력해주어야 젠킨스에서 배포시 문제가 발생하지 않는다.
    $ ssh -i ~/.ssh/ssh_key foobar@xx.xx.xx.xx
    The 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])? yes
    Warning: 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)
  3. 도커로 젠킨스를 구동하는 경우, 도커 컨테이너 재기동시에 ~/.ssh 디렉토리가 초기화되는 문제가 발생한다.
    1. 영속적으로 관리되는 /var/jenkins_home 디렉토리에 SSH 공개키를 백업해두는걸 추천한다.
      Terminal window
      tar zcvf /var/jenkins_home/ssh_backup.tar.gz ~/.ssh
    2. ~/.ssh 디렉토리가 초기화됐을 경우 복구한다.
      Terminal window
      tar zxvf /var/jenkins_home/ssh_backup.tar.gz -C /tmp
      mv /tmp/.ssh ~/.ssh

GCP 메타데이터에 SSH 공개키를 등록하는 절차

Section titled “GCP 메타데이터에 SSH 공개키를 등록하는 절차”
  1. Dashboard -> Compute Engine -> 좌측메뉴 -> 설정 -> 메타데이터 -> 탭에서 SSH 키 선택
  2. 수정 버튼 클릭 -> 항목 추가 버튼 클릭
  3. 공개키 파일의 내용을 복사한 뒤 저장 버튼 클릭