728x90
반응형

젠킨스(Jenkins) 파이프라인을 구축을 위해 원격 서버에 접속하여 배포 스크립트를 실행 때 SSH Key를 이용한 자격 증명(Credentials) 등록 방법 을 정리합니다. 

 

1. SSH 키 쌍(Key Pair) 생성(ssh 접속할 Remote 서버)

먼저 젠킨스가 사용할 열쇠(Private Key)와 원격 서버에 꽂아둘 자물쇠(Public Key)를 만들어야 합니다. 젠킨스 서버 또는 터미널에서 아래 명령어를 입력합니다.

# RSA 방식, 4096비트 길이로 생성
ssh-keygen -t rsa -b 4096 -C "jenkins_rsa_key"

# 생성 과정에서 엔터를 3번 쳐서 'Passphrase' 없이 생성합니다 (자동화 목적).

 

  • 생성된 파일 
    • 비밀키(Private Key): ~/.ssh/id_rsa → 젠킨스 Credentials에 등록
    • 공개키(Public Key): ~/.ssh/id_rsa.pub → 원격 서버에 등록
      • ~/.ssh/authorized_keys  파일에 id_rsa.pub 값을 붙여 넣습니다. authorized_keys   파일이 없으면 생성하고 붙여넣습니다.
# 접속 계정의 홈 디렉토리에서 실행
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "복사한_공개키_내용" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

 

2. 젠킨스(Jenkins)에 비밀키 등록하기

젠킨스가 원격 서버의 문을 열 수 있도록 비밀키를 전달해 주는 과정입니다.

  1. Jenkins 관리 > Credentials 메뉴로 접속합니다.
  2. (global) 도메인을 클릭하고 Add Credentials를 누릅니다.
  3. 아래 정보를 정확히 입력합니다.
  • Kind: SSH Username with private key
  • ID: 파이프라인에서 호출할 별명 (예: target-server-rsa-key)
  • Username: 서버에 접속할 실제 계정명 (예: compatest)
  • Private Key: 'Enter directly' 선택 후 [Add] 버튼을 누릅니다.
  • Key 입력: 터미널에서 cat ~/.ssh/id_rsa 명령어로 출력된 내용을 -----BEGIN RSA PRIVATE KEY-----부터 끝까지 전부 복사해서 붙여넣습니다.

 

3. 연결테스트 -> 파이프라인(Jenkinsfile) 적용 

  • New Item 생성 

  • 구성 -> 파이프라인 스크립트 붙여넣기
pipeline {
    agent any
    environment {
        // 2단계에서 설정한 ID를 입력합니다.
        SSH_CRED_ID = "test-key"
        REMOTE_HOST = "[ip]"
        REMOTE_USER = "testuser"
    }
    stages {
        stage('Remote SSH Test') {
            steps {
                // SSH Agent 플러그인 필수
                sshagent(credentials: ["${SSH_CRED_ID}"]) {
                    sh "ssh -o StrictHostKeyChecking=no ${REMOTE_USER}@${REMOTE_HOST} 'echo Connection Success!'"
                }
            }
        }
    }
}

 

  • 테스트

728x90
반응형

'테스트 > 자동화' 카테고리의 다른 글

[Python] Test Frame Work  (4) 2025.08.06

+ Recent posts