웹사이트 검색

Linux에서 SSH ProxyJump 및 SSH ProxyCommand를 사용하는 방법


요약: 이 가이드에서는 점프 서버에 연결할 때 SSH ProxyJump 및 SSH ProxyCommand 명령을 사용하는 방법을 보여줍니다.

SSH 점프 서버를 설정하는 방법에 대한 이전 가이드에서는 Bastion Host의 개념을 다루었습니다. 배스천 호스트 또는 점프 서버는 SSH 클라이언트가 대상 원격 Linux 시스템에 액세스하기 전에 먼저 연결하는 중간 장치입니다. SSH 점프 서버는 IT 리소스에 대한 게이트웨이 역할을 하여 공격 표면을 줄입니다.

SSH ProxyJumpProxyCommand 명령은 클라이언트가 점프 서버, 점프 호스트를 통해 원격 서버에 연결하는 방법을 결정합니다. 또는 요새 서버.

이 가이드에서는 Linux의 SSH ProxyJumpSSH 프록시 명령에 대해 집중 조명합니다.

SSH ProxyJump 명령을 사용하여 원격 Linux 연결

ProxyJump 명령은 -J 플래그로 표시됩니다. OpenSSH 서버 버전 7.3에 도입되었으며 배스천이나 점프 서버를 건너뛰어 원격 대상에 연결할 수 있도록 도와줍니다.

아래 구문은 이 옵션이 사용되는 방법을 보여줍니다.

ssh -J <jump-server> <remote-target>

다중 요새 또는 점프 서버의 경우 구문은 다음 형식을 사용합니다.

ssh -J <jump-server-1> <jump-server-2> <remote-target>

두 경우 모두 모든 단계에서 루트 사용자로 로그인됩니다. 이는 보안상의 이유로 이상적이지 않으므로 모든 인스턴스에서 다른 사용자를 생성해야 할 수도 있습니다.

표시된 대로 다른 사용자와 SSH 포트를 명시적으로 지정할 수 있습니다.

ssh -J <user@jump-host:port> <user@remote-target:port>

ProxyJump 플래그가 실제로 작동하는 모습을 보여주기 위해 다음과 같은 간단한 설정이 있습니다.

Jump Server IP:		173.82.232.55		User: james
Remote Target IP:	173.82.227.89		User: tecmint

Jump 서버를 사용하여 원격 대상에 연결하려면 명령은 다음과 같습니다.

ssh -J [email  [email 

이 명령은 점프 서버의 사용자 비밀번호를 묻는 메시지를 표시한 다음 대상 시스템에 대한 액세스 권한을 부여할 대상 시스템의 비밀번호를 입력합니다.

~/.ssh/config 파일에서 프록시 호스트 구성

특정 배스천을 정기적으로 사용하여 특정 원격 대상에 연결하는 경우 ~/.ssh/config 파일에 다음 ProxyJump 구성을 추가하여 연결을 원활하게 만들 수 있습니다. . 이런 일이 발생하면 한 번만 인증되며 이는 원격 대상에서만 발생합니다.

Host host-jump
User james
Hostname 173.82.232.55

Host host_destination
User tecmint
Hostname 173.82.227.89
Port 22

위의 구성을 사용하면 그림과 같이 대상에 연결할 수 있습니다.

ssh -J host_destination

SSH ProxyCommand 명령을 사용하여 원격 Linux 연결

SSH 프록시 점프 이전에는 ProxyCommand가 원격 대상에 도달하기 위해 호스트를 점프하는 유일한 방법이었습니다. 점프 서버나 배스천을 통해 원격 대상에서 stdin(표준 입력) 및 stdout(표준 출력)을 전달하는 방식으로 작동합니다.

ProxyCommand는 다음 구문을 사용합니다.

ssh -o ProxyCommand="ssh -W %h:%p <jump server>" <remote target>

여기서 %h:%p 인수에 대한 -W는 stdin 및 out을 원격 호스트 (%h)와 원격 호스트로 전달합니다. 호스트의 포트 (%p).

명령을 실행하기 위한 명령은 다음과 같습니다.

ssh -o ProxyCommand="ssh -W %h:%p 173.82.232.55" 173.82.227.89

~/.ssh/config 파일에서 ProxyCommand 구성

물론 전체 명령을 입력하는 것은 지루하고 시간이 많이 걸립니다. 이렇게 긴 명령을 입력하지 않으려면 ~/.ssh/config 파일에 다음 코드 줄을 추가하세요.

Host host-destination
Hostname 173.82.227.89
ProxyCommand ssh -q -W %h:%p host-jump

저장 및 종료.

이제 다음 명령을 실행하여 원격 서버에 연결하기만 하면 됩니다.

ssh host-destination
결론

이 가이드에서는 ProxyJumpProxyCommand 명령이 작동하는 방식을 보여주었습니다. 일반적으로 ProxyJumpProxyCommand에 대한 더 나은 대안으로 등장하며 점프 호스트를 통해 원격 대상에 연결하는 더 쉽고 원활한 방법을 제공합니다.