젠킨스를 이용해 SSH 서버 접속하기
🔍 준비 작업: Jenkins에서 SSH 서버 접속을 위한 기본 설정
Jenkins에서 원격 서버에 SSH로 접속하기 위해서는 안전한 인증 과정이 필요합니다. 비밀번호 기반 인증보다 더 안전하고 자동화에 유리한 SSH Key
기반 인증 방법을 사용해 봅시다.
✅ SSH Key 생성하기
- SSH 키 생성:
- RSA 알고리즘을 사용하여 4096비트 길이의 SSH 키를 생성합니다.
-C
옵션을 사용해 키에 주석을 달아 식별하기 쉽게 합니다.- 경로를 설정하지 않으면 기본적으로
~/.ssh
경로에id_rsa
(개인 키)와id_rsa.pub
(공개 키) 파일이 생성됩니다. - 명령어 예시:
1
ssh-keygen -t rsa -b 4096 -C "주석으로 사용하고 싶은 내용"
- 원격 서버에 공개 키 등록:
- 원격 서버에 접속하여
~/.ssh
경로로 이동합니다. - Jenkins 서버에서 생성한
id_rsa.pub
파일의 내용을authorized_keys
파일에 추가합니다.
- 원격 서버에 접속하여
✅ Jenkins Credentials 등록하기
Jenkins Credentials은 Jenkins에서 사용되는 인증 정보를 안전하게 관리할 수 있도록 도와주는 기능입니다. 이 정보는 Jenkins 인스턴스에 암호화된 형태로 저장되며, 파이프라인 프로젝트에서 해당 자격 증명 ID를 통해 처리됩니다.
- 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 접속 테스트하기
이제 파이프라인 프로젝트를 생성하여 SSH 접속이 제대로 이루어지는지 테스트해봅시다.
- 파이프라인 생성:
- Dashboard에서
New Item
을 클릭하고Freestyle Project
를 선택합니다.
- Dashboard에서
- 스크립트 작성:
- 프로젝트 설정에서 아래와 같이 파이프라인 스크립트를 작성합니다.
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 ' """ } } } } }
- 프로젝트 설정에서 아래와 같이 파이프라인 스크립트를 작성합니다.
- 결과 확인:
- Console Output으로 이동하여
ls
명령어가 정상적으로 실행되었는지 확인합니다.
- Console Output으로 이동하여
This post is licensed under CC BY 4.0 by the author.