Post

젠킨스를 이용해 SSH 서버 접속하기

🔍 준비 작업: Jenkins에서 SSH 서버 접속을 위한 기본 설정

Jenkins에서 원격 서버에 SSH로 접속하기 위해서는 안전한 인증 과정이 필요합니다. 비밀번호 기반 인증보다 더 안전하고 자동화에 유리한 SSH Key 기반 인증 방법을 사용해 봅시다.

✅ SSH Key 생성하기

  1. SSH 키 생성:
    • RSA 알고리즘을 사용하여 4096비트 길이의 SSH 키를 생성합니다.
    • -C 옵션을 사용해 키에 주석을 달아 식별하기 쉽게 합니다.
    • 경로를 설정하지 않으면 기본적으로 ~/.ssh 경로에 id_rsa(개인 키)와 id_rsa.pub(공개 키) 파일이 생성됩니다.
    • 명령어 예시:
      1
      
      ssh-keygen -t rsa -b 4096 -C "주석으로 사용하고 싶은 내용"
      
  2. 원격 서버에 공개 키 등록:
    • 원격 서버에 접속하여 ~/.ssh 경로로 이동합니다.
    • Jenkins 서버에서 생성한 id_rsa.pub 파일의 내용을 authorized_keys 파일에 추가합니다.

SSH Key Registration

✅ Jenkins Credentials 등록하기

Jenkins Credentials은 Jenkins에서 사용되는 인증 정보를 안전하게 관리할 수 있도록 도와주는 기능입니다. 이 정보는 Jenkins 인스턴스에 암호화된 형태로 저장되며, 파이프라인 프로젝트에서 해당 자격 증명 ID를 통해 처리됩니다.

Jenkins Credentials Setup

  • Scope:
    • Global: 파이프라인 프로젝트에 사용될 경우 선택합니다.
    • System: 이메일 인증 등 시스템 관리 기능에 사용될 경우 선택합니다.
  • ID: 이후 이 ID를 사용하여 Credential 정보를 참조합니다.
  • Username: 원격 서버의 사용자 계정 이름을 입력합니다.
  • Private Key: 개인 키를 등록합니다.
  • Passphrase: 개인 키 생성 시 설정한 경우 입력합니다 (선택 사항).

✅ SSH Agent 플러그인 설치하기

Jenkins에서 SSH 인증을 자동화하기 위해 SSH Agent 플러그인을 설치합니다.

  • 경로: Dashboard -> Manage Jenkins -> Plugins -> Available plugins -> SSH Agent 검색 및 설치.

SSH Agent Plugin Installation

🔍 테스트: 파이프라인 프로젝트에서 SSH 접속 테스트하기

이제 파이프라인 프로젝트를 생성하여 SSH 접속이 제대로 이루어지는지 테스트해봅시다.

  1. 파이프라인 생성:
    • Dashboard에서 New Item을 클릭하고 Freestyle Project를 선택합니다.

New Jenkins Project

  1. 스크립트 작성:
    • 프로젝트 설정에서 아래와 같이 파이프라인 스크립트를 작성합니다.
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      
      pipeline {
        agent any
        stages {
            stage('SSH Folder Creation') {
                steps {
                    sshagent (credentials: ['tour-dev-ssh']) {
                        sh """
                            ssh -o StrictHostKeyChecking=no @ '
                            ls
                        '
                        """
                    }
                }
            }
        }
      }
      
  2. 결과 확인:
    • Console Output으로 이동하여 ls 명령어가 정상적으로 실행되었는지 확인합니다.

Console Output

This post is licensed under CC BY 4.0 by the author.

© bear-su. Some rights reserved.