CI/CD 파이프라인에서 Jenkins를 사용해 자동 배포를 구성할 때, 보안성과 편의성을 위해 SSH 공개키 기반 로그인 방식을 설정하는 것이 좋습니다.
이번 글에서는 **리눅스 서버(dev 계정)**에 SSH 공개키 방식 로그인을 설정하는 과정을 상세히 정리합니다.
공개키 로그인 방식이란?
SSH 공개키 방식은 비밀번호 없이 공개키/개인키 쌍을 이용해 인증하는 방식으로, 자동화 시스템에서 주로 사용됩니다. Jenkins와 같은 빌드 서버에서 대상 서버에 비밀번호 없이 안전하게 접속하기 위해 설정합니다.
SSH 키 생성하기 (dev 계정 기준)
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/dev/.ssh/id_rsa):
Created directory '/home/dev/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/dev/.ssh/id_rsa
Your public key has been saved in /home/dev/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:twlD7i+iFqgOStBQdgPiWAy3wJpeImicbpf4xSAyMok dev@SERVERHOST
The key's randomart image is:
+---[RSA 3072]----+
|=o*.o |
|oO.o . |
|B+o . |
|EO o o |
|Oo*.+ S . |
|.=.o.o . + o |
|ooo .. . o |
|= .. . .. |
|o. ... . .. |
+----[SHA256]-----+
- 키 생성 명령어인 ssh-keygen을 실행한 내용
- 기본 저장 위치: /home/dev/.ssh/id_rsa
- 키 생성 중 Passphrase는 비워도 무방 (자동화 목적일 경우)
키 파일 확인
$ ls -l ~/.ssh
-rw------- 1 dev dev 2590 Apr 17 15:36 id_rsa
-rw-r--r-- 1 dev dev 564 Apr 17 15:36 id_rsa.pub
공개키 등록 (authorized_keys)
# 공개키 파일명 변경
$ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
# 공개키 파일 권한 변경
$ chmod 600 ~/.ssh/authorized_keys
# 처리된 내용 확인
$ ls -l ~/.ssh
-rw------- 1 dev dev 2590 id_rsa
-rw------- 1 dev dev 564 authorized_keys
기본 SSH 공개키 로그인 설정 완료
이후 Jenkins의 빌드 작업에서 이 **개인키(id_rsa)**를 이용하여 SFTP 또는 SSH 명령어로 자동 접속 및 배포를 수행할 수 있습니다.
※ 참고: 개인키 파일은 절대 외부에 노출되면 안 되며, Jenkins 서버의 credentials에 안전하게 등록하여 사용하세요.
관련글
[리눅스/Rocky] - [CI/CD 서버 구축 #1] Rocky Linux에 Jenkins 설치 (.war 파일 기반, Java 17)
[CI/CD 서버 구축 #1] Rocky Linux에 Jenkins 설치 (.war 파일 기반, Java 17)
CI/CD 파이프라인을 구축할 때 가장 널리 사용되는 도구 중 하나인 Jenkins를 Rocky Linux 환경에 설치하는 방법을 정리합니다.이번 글에서는 .war 파일을 직접 실행하는 방식으로 설치하며, Java 17 환경
jineddy.tistory.com
[리눅스/Rocky] - [CI/CD 서버 구축 #2] Rocky Linux에 Nexus 설치 하기
[CI/CD 서버 구축 #2] Rocky Linux에 Nexus 설치 하기
Nexus Repository Manager는 사내 CI/CD 환경에서 빌드 결과물(라이브러리, 패키지 등)을 저장·배포하는 데 사용됩니다.이 글에서는 Rocky Linux 서버에 Nexus 3.x 버전 설치를 단계별로 정리해보겠습니다.SI
jineddy.tistory.com
[개발/Java] - [CI/CD 서버 구축 #4] 폐쇄망 환경에서 오픈소스 라이브러리를 Nexus에 업로드하는 3가지 방법
[CI/CD 서버 구축 #4] 폐쇄망 환경에서 오픈소스 라이브러리를 Nexus에 업로드하는 3가지 방법
기업 내부망이나 보안 상의 이유로 인터넷 접속이 제한된 환경에서도 개발에 필요한 오픈소스 라이브러리를 활용해야 하는 경우가 많습니다. 이럴 때 Sonatype Nexus Repository Manager를 이용해 외부
jineddy.tistory.com
[개발/Java] - [CI/CD 서버 구축 #5] Maven deploy 시 자동 생성된 pom.xml로 인한 문제와 해결법
[CI/CD 서버 구축 #5] Maven deploy 시 자동 생성된 pom.xml로 인한 문제와 해결법
폐쇄망 환경에서 mvn deploy:deploy-file 명령어로 외부 라이브러리를 Nexus Repository에 수동 업로드할 때, 종종 발생하는 문제가 있습니다. 바로 자동 생성된 pom.xml이 실제 배포된 라이브러리의 메타 정
jineddy.tistory.com
[리눅스] - PuTTY 키 기반 로그인 설정 가이드 (Windows 기준)
PuTTY 키 기반 로그인 설정 가이드 (Windows 기준)
설정 저장 SSH 접속을 자동화하고 보안성을 강화하는 법 이 글에서 다루는 내용 PuTTY에서 OpenSSH 키 변환 방법키 기반 인증을 사용하는 SSH 로그인 설정접속 자동화 및 인증 오류 해결 팁 PuTTY 키 변
jineddy.tistory.com
'서버 > CI 및 CD' 카테고리의 다른 글
[CI/CD 서버 구축 #5] Maven deploy 시 자동 생성된 pom.xml로 인한 문제와 해결법 (0) | 2025.04.23 |
---|---|
[CI/CD 서버 구축 #4] 폐쇄망 환경에서 오픈소스 라이브러리를 Nexus에 업로드하는 3가지 방법 (0) | 2025.04.23 |
[CI/CD 서버 구축 #2] Rocky Linux에 Nexus 설치 하기 (0) | 2025.04.14 |
[CI/CD 서버 구축 #1] Rocky Linux에 Jenkins 설치 (.war 파일 기반, Java 17) (0) | 2025.04.14 |