[Linux] JUMP HOST_ SSH 경유 서버를 통한 원격 접속

SSH 명령을 사용할 때 보안이나 네트워크 구조 문제로 인하여 바로 접근이 불가능한 경우가 있습니다. JUMP HOST 방법을 이용하면 중간 서버를 경유하여 SSH 연결이 가능하므로 접근 문제를 어느 정도 해결할 수 있습니다.

버전

  • Redhat Enterpries Linux 7 ~ 9
  • RHEL6 버전 이하는 테스트하지 않았습니다.

연습 환경

Ansible 서버에서 Client 서버로 바로 연결이 되지 않는 경우입니다. Ansisble 서버는 오직 Bastion 서버를 통하여 Client 서버로 접근할 수 있는 환경입니다. JUMP HOST 기능을 사용하면 이러한 상황에서 Ansible 서버는 Bastion 서버를 경유해서 Client로 접근할 수 있습니다.

ssh 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 연결이 막혀있어 접속이 지속적으로 실패하는 상황입니다.

ssh 명령어로 JUMP HOST 이용한 서버 연결

-J 옵션을 이용하여 경유 호스트를 등록하고 다시 시도합니다.

[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 서버를 통해서 Client로 향하고 있으므로 패스워드 확인도 각 서버 모두 진행됩니다.

SSH JUMP HOST 영구 등록

매번 -J 옵션을 이용하기 번거로울 수 있습니다. ssh client 설정 파일에 등록하게 되면 명령을 칠 때마다 자동으로 JUMP HOST를 통하도록 설정할 수 있습니다.

 설정 파일 변경편집기를 이용하여 JUMP HOST 정보를 등록

[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 접속

[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 ~]#

이제 -J 옵션을 지정하지 않아도 해당 서버의 연결은 자동으로 JUMP HOST를 경유합니다.

참조

https://access.redhat.com/documentation/ko-kr/red_hat_enterprise_linux/8/html-single/securing_networks/index

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Scroll to Top