Docker 컨테이너에 SSH 서버 설치하기
1. 컨테이너에 SSH Server 설치 및 설정
1) 컨테이너 내부로 SSH 서버 설치
docker exec -it my-was-ssh /bin/bash // my-was-ssh 컨테이너 접속
apt-get update
apt-get install openssh-server // SSH Server 설치
service ssh start // SSH Server 시작
service --status-all // 실행 중인 서비스 출력해서 확인
2) SSH 설정 파일 수정 (root 계정 접속 가능하게 설정)
vi /etc/ssh/sshd_config
`PermitRootLogin yes`로 수정
`Port 22` 주석 해제
service ssh restart // ssh 서버 재시작
3) 컨테이너의 비밀번호 변경
passwd
원하는 비밀번호 입력
4) 다른 콘솔에서 SSH 접속 확인
ssh root@[ssh가 설치된 컨테이너의 IP]
설정한 비밀번호 입력
2. Jenkins에서 SSH 연결 설정
1) Jenkins SSH 플러그인 설치
Jenkins 대시보드에서 "Manage Jenkins" -> "Manage Plugins"로 이동하여 "Publish over SSH" 플러그인을 검색하고 설치한 후 Jenkins를 재시작합니다.
2) SSH 서버 설정
Jenkins 대시보드에서 "Manage Jenkins" -> "System"로 이동합니다. "SSH Servers" 섹션에서 다음과 같이 설정합니다.
- Name : my-was-ssh
- HostName : 컨테이너의 공인 IP 주소
- Username : root
- Remote Directory : /usr/local/tomcat/webapps
3) 고급 옵션 설정
"Advanced" 버튼을 클릭하고 "Use password authentication, or use a different key" 옵션을 체크합니다. 그리고 앞서 설정한 SSH 서버의 비밀번호 또는 passphrase, 포트 등을 입력합니다.
4) 연결 테스트
설정을 저장한 후 "Test Configuration" 버튼을 클릭하여 연결이 성공적인지 확인합니다. 성공하면 설정이 올바르게 완료된 것입니다.
이제 컨테이너에 SSH 서버가 설치되었고, Jenkins에서 해당 SSH 서버에 연결할 수 있도록 설정이 완료되었습니다. 이를 통해 Jenkins는 SSH를 통해 컨테이너에 파일을 전송하거나 원격 명령을 실행할 수 있습니다.