일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- gitlab
- hashcode
- 웹프로젝트
- annotaion
- Gradle
- mybatis
- 이클립스
- springboot
- SpringFramework
- git
- 개발
- REST
- Jenkins
- 스프링프레임워크
- spring-framework
- oracle
- Linux
- jsp
- Web
- Pipeline
- Spring Boot
- maven
- War
- JAR
- Spring Framework
- tomcat
- soap
- java
- 스프링부트
- Spring
- Today
- Total
Verity's Daily Logs_
[Jenkins]Publish over SSH 플러그인 지원 종료 본문
최근 신규로 개발환경 세팅을 진행해야 하던 중, Jenkins에서 Publish Over SSH가 검색되지 않아 난감했던 경험이 있었다..
왜 더이상 검색되지 않는가, Publish Over SSH를 대체할 좋은 배포 방법은 있는 것인가에 대해 정리해 두도록 한다.
1. Plugin 지원 종료
기존 Plugin Docs 페이지(https://plugins.jenkins.io/publish-over-ssh/)로 접속하면 이런 문구가 표시된다.
Plugin distribution has been suspended,
see https://www.jenkins.io/security/plugins/#suspensions for details.
안내된 페이지(https://www.jenkins.io/security/plugins/#suspensions) 로 들어가 보면..
보안 취약점이 발견되어 Jenkins에서는 더 이상 제공하지 않는다는 설명과 함께 플러그인 이름이 들어가 있는 것을 볼 수 있다. 2022-01-12일 자에 나온 이슈이니, 정말 최근에 지원이 중단되었다는 것을 알 수 있다.
2. 지원 종료 이유
발견된 취약점의 상세 내용은 아래 주소에서 확인할 수 있다.
https://www.jenkins.io/security/advisory/2022-01-12/
대충 요약하자면 아래 취약점이 발견되어 제공을 중지한다는 것이다.
- SSH 서버 이름을 이스케이프 하지 않기 때문에 XSS 취약점 발생
- 연결 테스트 구현 시 권한 검사가 누락되어 공격자가 SSH서버에 접속 가능함
- 파일 존재 여부를 위한 경호 순회기능을 이용한 경로탐색 취약점 발생
- 일반 텍스트로 저장된 비밀번호, 암호화 되지 않았기 때문에 보안에 취약함
3. Publish Over SSH 의 대체품? - Plugin
급한 대로 유사한 기능의 SSH 접속 플러그인을 사용해 보려고 검색해 봤을 때 나오는 플러그인이 있기는 했다.
username/password로 접속하는 일반 서버에는 사용할 수 있을 것으로 보이나, 내가 배포해야 할 서버는 key를 이용해 접속하는 AWS서버였기 때문에 다른 방법을 찾아야 했다.
4. Pipeline
Jenkins pipeline은 연속된 작업을 연결해놓은 젠킨스의 자동화 된 프로세스를 표현하는 말이다. Script로 작업을 직접 구현해야 하는 것이기 때문에 처음에 친숙해 지기까지는 조금 시간이 걸릴 수도 있다. 빌드 및 테스트 단계가 간단하지 않거나, SSH접속을 위해 별도의 Credential을 가져와야 하는 경우 등 좀 더 상세한 동작을 스크립트로 모두 작성할 수 있다는 장점이 있다.
파이프라인 실행 결과도 보다 직관적으로 확인할 수 있기 때문에, 이 방법을 사용해 보기로 했다.
다음 포스팅에서 Springboot 프로젝트를 pipeline으로 배포하는 과정을 정리할 것이다.
(Pipeline Project)
'GIT & Jenkins' 카테고리의 다른 글
[Gitlab]Server 용량부족 확인 (feat. yum clean all) (0) | 2022.02.17 |
---|---|
[Jenkins]Springboot프로젝트를 AWS에 배포하기 (Jenkins Pipeline) (1) | 2022.02.05 |
[Jenkins]Spring Project 배포하기 (Publish over SSH) (0) | 2022.02.04 |
[Jenkins]원하는 파일만 골라내서 배포하기(Java Dynamic Web Project) (1) | 2022.02.03 |
[CI/CD환경구축-3]Jenkins 초기 설정(계정 추가, GitLab연동) (0) | 2022.02.03 |