
이전에 이 질문을 받으셨다면 죄송합니다. 하지만 현재 RDP 게이트웨이 작동 방식과 유사하게 SSH 연결을 설정할 수 있는 솔루션을 찾으려고 노력 중입니다. 익숙하지 않은 분들을 위해 RDP 게이트웨이를 사용하면 기본적으로 다른 서버를 통해 RDP 연결을 프록시할 수 있습니다. 원격 데스크톱은 RDP 게이트웨이 서버를 통해 투명하게 인증하고 여기에서 엔드포인트 서버에 대한 연결을 설정하므로 개인 IP 주소 또는 내부 DNS 이름으로 엔드포인트 서버를 참조하여 노출을 제한할 수 있습니다.
현재 제가 생각하고 있는 것은 터널 프록시 뒤에서 액세스할 수 있어야 하는 모든 서버가 중간 지점 서버에서 전달되는 다른 포트에 있도록 SSH를 통해 포트 전달을 설정하는 것입니다. 그러나 이는 최적의 솔루션처럼 느껴지지 않으므로 이 작업을 수행하는 더 좋은 방법이 있는지 알고 싶습니다.
답변1
SSH 용어로 자주 이야기하는 것은요새 호스트또는점프 서버- 들어오는 SSH 연결을 허용하고 관리하는 실제 시스템에 대한 SSH 연결을 만들 수 있는 단일 시스템(일반적으로 DMZ에 있음).
==> | Server1 |
_________ ___________ / ---------
| user PC | ===(SSH on port 22)===> | jump host | ===(SSH on port 22)== ==+> | Server2 |
_________ ___________ \ _________
==> | Server3 |
향상된 보안을 위해 점프 서버는 이중 요소 인증을 요구하거나 VPN 연결을 설정한 후에 들어오는 SSH 세션만 허용하는 경우가 많습니다.
먼저 점프 호스트에 로그온하고 명령 프롬프트에서 두 번째 SSH 세션을 시작하는 대신 OpenSSH를 사용하면 단일 명령으로 이를 구성할 수 있습니다.
~/.ssh/config
나는 각 호스트에 대한 짧은 별칭을 사용하여 my에서 모든 설정을 명시적으로 설정하는 것을 선호합니다 . 그렇게 하면 명령줄 플래그를 사용할 필요가 없으며 간단히 입력하고 사용 ssh Destination
하고 끝낼 수 있습니다.
Host jumphost
Hostname jumphost.example.com
User serverfault
ForwardAgent yes
AddKeysToAgent yes
UseKeychain yes # Specific to OS X
IdentityFile ~/.ssh/id_rsa.jumphost
Host server1
Hostname server1.int.example.com
User hbruijn
ForwardAgent yes
AddKeysToAgent yes
UseKeychain yes # Specific to OS X
IdentityFile ~/.ssh/id_rsa.int.example.com
ProxyJump jumphost
ProxyJump
는 ProxyCommand
. 이제 ssh server1
필요한 작업을 정확하게 수행합니다. 먼저 [email protected]
선택적으로 다른 SSH 키와 다른 사용자 이름을 사용하여 다음 홉으로 터널링하는 첫 번째 홉을 사용하여 세션을 만듭니다 [email protected]
.
명령줄에서 직접 ProxyJump 명령을 사용할 수도 있습니다.
ssh -J [email protected] [email protected]
다른 접근 방식이 논의됩니다.이 Q&A
답변2
표준 솔루션은 IPv6(및/또는 VPN)을 배포하고 처음부터 이러한 종류의 해결 방법을 피하는 것입니다. 그러나 지금 그렇게 할 수 없는 경우 이를 점프 박스 또는 요새 호스트 또는 유사한 용어라고 합니다. 이는 사용자가 ssh를 사용하여 로그인한 다음 해당 상자가 네트워크에 액세스할 수 있는 내부 호스트에 ssh를 추가로 연결할 수 있도록 설정한 시스템일 뿐입니다. 이 ssh
명령에는 점프 호스트를 통해 연결을 자동화하는 명령줄 옵션도 있습니다.
-J destination
Connect to the target host by first making a ssh connection to
the jump host described by destination and then establishing a
TCP forwarding to the ultimate destination from there. Multiple
jump hops may be specified separated by comma characters. This
is a shortcut to specify a ProxyJump configuration directive.
Note that configuration directives supplied on the command-line
generally apply to the destination host and not any specified
jump hosts. Use ~/.ssh/config to specify configuration for jump
hosts.