[Linux] JUMP HOST_ SSH 경유 서버를 통한 원격 접속
보안 정책이나 네트워크 구조로 인해 SSH 명령어를 통해 직접 서버에 접근하기 어려운 경우가 있습니다. 이럴 때는 중간에 위치한 서버를 경유해 연결하는 JUMP HOST 방식을 사용하면 문제를 해결할 수 있습니다. JUMP HOST는 중간 서버를 통해 목적지 서버에 우회적으로 접근할 수 있도록 해주는 유용한 기능입니다.
적용 버전 및 환경 구성
지원 버전: Red Hat Enterprise Linux 7 ~ 9
-
테스트 제외: RHEL6 이하 버전은 테스트하지 않았습니다.
본 예제 환경은 Ansible 서버가 직접 Client 서버에 SSH 접속할 수 없는 구조입니다. Ansible 서버는 오직 Bastion 서버를 통해서만 Client 서버에 접근할 수 있으며, JUMP HOST 기능을 사용해 이 제약을 우회합니다.
SSH 명령을 이용한 JUMP HOST 사용
먼저 Ansible 서버에서 Client 서버로 직접 접속을 시도하면 인증 실패로 인해 접속이 되지 않습니다.
[root@ansible ~]# ssh 192.168.243.111 root@192.168.243.111's password: Permission denied, please try again. root@192.168.243.111's password:
네트워크 연결 자체는 가능하나, 보안 정책 등으로 인해 SSH 접속이 차단되어 있는 상태입니다.
이때 -J
옵션을 사용하여 JUMP HOST를 지정하면 중간 서버를 통해 목적지 서버로 접속할 수 있습니다.
[root@ansible ~]# ssh -J 192.168.243.131 192.168.243.111 ... ### 경유지 서버 패스워드 입력 root@192.168.243.131's password: ... ### 목적지 서버 패스워드 입력 root@192.168.243.111's password: ... [root@client~]#
이 명령을 실행하면 Bastion 서버(192.168.243.131)와 Client 서버(192.168.243.111) 양쪽의 인증이 차례로 진행되며, 최종적으로 Client 서버에 접속됩니다.
SSH JUMP HOST 영구 등록
매번 -J
옵션을 입력하는 것이 번거롭다면, SSH 클라이언트 설정 파일에 JUMP HOST 정보를 등록하여 자동으로 경유되도록 설정할 수 있습니다. 이를 위해 사용자 홈 디렉터리의 ~/.ssh/config
파일을 수정합니다.
[root@ansible ~]# vim ~/.ssh/config Host client HostName 192.168.243.111 ProxyJump 192.168.243.131
- HOST: ssh 명령에서 사용하는 호스트 이름 또는 별칭, 실제 호스트 이름이 아닌 임의 문자열 일 수 있습니다. ssh 명령 뒤에 이 이름을 입력해야 JUMP HOST가 작동합니다.
- HostName: 실제로 연결하려는 대상의 IP 주소 또는 도메인입니다.
- ProxyJump: JUMP HOST를 지정합니다. SSH 연결은 먼저 이 서버를 거쳐서 목적지 서버로 연결됩니다.
ssh client
명령만 입력해도 자동으로 Bastion 서버를 경유해 Client 서버로 접속됩니다.[root@ansible ~]# ssh client root@192.168.243.131's password: root@192.168.243.111's password: Activate the web console with: systemctl enable --now cockpit.socket Register this system with Red Hat Insights: insights-client --register Create an account or view all your systems at <https://red.ht/insights-dashboard> Last login: Mon Nov 27 06:36:20 2023 from 192.168.243.131 [root@client ~]#
이처럼 ~/.ssh/config
설정을 활용하면 JUMP HOST를 매번 지정하지 않고도 대상 서버에 손쉽게 접속할 수 있습니다. JUMP HOST 환경이 자주 필요한 구조에서는 효율적인 관리 방식이 됩니다.
참조
JUMP HOST를 활용한 SSH 설정은 보안적으로 제한된 환경이나 내부망 구조에서 매우 유용합니다. 특히 관리 서버에서 직접 접근이 어려운 환경에서 Bastion 서버를 통한 경유 연결은 운영 효율을 크게 높여줍니다.
댓글
댓글 쓰기