[Jenkins] public over ssh를 통한 원격 서버 배포 해보기

선형채·2024년 1월 2일
0

준비물 : 젠킨스서버 , 배포서버
두 서버 모두 aws ec2 우분투 환경에서 입니다 !

1. jenkins서버에서 SSH key 발급

젠킨스가 설치되어 있는 서버에서 jenkins 계정으로 로그인 한 뒤 아래의 명령어를 입력합니다. (passphrase는 따로 설정을 하지 않을 것이기 때문에 Enter를 입력하여 생략하시면 됩니다)

ssh-keygen

명령어 입력이 완료 되었다면 ~/.ssh 경로에 id_rsa, id_rsa.pub 파일이 2개 생성됩니다.

id_rsa: private key
절대로 타인에게 노출이 되면 안된다
id_rsa.pub: public key
접속하려는 원격 서버의 authorized_key에 입력한다

2. Publish Over SSH 설정

Jenkins 관리 -> 시스템 설정 -> Publish Over SSH 탭에서 추가 버튼을 클릭하고 아래의 정보를 입력합니다.

Name: SSH Server 를 구분할 수 있는 이름
HostName: SSH를 이용해 파일을 전송하려는 원격 서버
Username: 원격 서버 계정명
Remote Directory: 원격 서버 디렉토리 입력
고급 탭으로 이동하여 Use password authentication, or use a different key 에 체크한 뒤 Jenkins 서버에서 생성한 id_rsa 내용을 아래의 명령어를 통해 복사하여
입력합니다.

cat ~/.ssh/id_rsa

3. 원격 서버 설정

비밀번호 대신 원격 서버에 접속하려면 .ssh 디렉토리에 authorized_key 파일이 필요합니다. 원격 서버에서 아래의 명령어를 입력하여 파일을 생성합니다.

.ssh 디렉토리가 없는 경우

mkdir ~/.ssh
vi ~/.ssh/authorized_key
authorized_key 파일에 젠킨스 서버에서 발급받은 id_rsa.pub 내용을 복사하여 입력합니다.
cat ~/.ssh/id_rsa.pub

🎈.ssh 디렉토리는 중요한 정보가 담긴 디렉토리이기 때문에. Permission 권한을 수정해주어야 합니다. (권한이 맞지 않으면 SSH 인증이 동작하지 않습니다)🎈

chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keys

원격 서버까지 설정이 모두 끝났다면 다시 Jenkins로 이동하여 Test Configuration 을 클릭하여 정상적으로 인증에 성공하는지 테스트 합니다.

profile
JAVA BACK-END DEVELOPER 👩‍💻

0개의 댓글