모든 SSH 연결에 ProxyCommand 사용

모든 SSH 연결에 ProxyCommand 사용

저는 SSH 프록시 서버나 점프 호스트(Jump Host)라는 아이디어를 갖고 놀고 있었습니다."숨겨진"서버. 기본적으로 다음과 같은 설정이 있습니다. 여기서는 호스트 이름 대신 의도적으로 IP 주소를 사용합니다.

<client> ---> <proxy_ssh> ---> <192.168.0.*>

내 의도는 가능한 한 사용자에게 투명해야 한다는 것입니다. 따라서 이상적으로는 사용자가 다음 명령만 실행하면 됩니다.

# ssh [email protected]

이 작업을 수행하기 위해 다음을 만들었습니다 .ssh/config.

Host *                                                                                                                                                                           
    ServerAliveInterval 240                                                                                                                                                      
    Compression yes                                                                                                                                                              
    ForwardAgent yes                                                                                                                                                             
    ForwardX11 yes                                                                                                                                                               

Host 192.168.0.*                                                                                                                                                                   
    ProxyCommand ssh my_user@proxy_ssh.example.com netcat -w 120 %h %p

이것은 잘 작동합니다. 하지만 내 proxy_ssh서버 뒤에서 작업할 네트워크가 더 많다면 다소 지루한 일이 될 것입니다 . 그래서 작동하지 않는 섹션 ProxyCommand에 간단히 추가해 보았습니다 .Host *

나는 이것을 최종 사용자에게 더 투명하게 만들고 싶었고 특정 호스트 정의를 생략하고 ssh 구성을 다음과 같이 변경했습니다.

Host *
    ServerAliveInterval 240                                                                                                                                                      
    Compression yes                                                                                                                                                              
    ForwardAgent yes                                                                                                                                                             
    ForwardX11 yes                                                                                                                                                               
    ProxyCommand ssh my_user@proxy_ssh.example.com netcat -w 120 %h %p

이로 인해 더 이상 엔드호스트에 연결할 수 없게 되었습니다. 연결 시간이 초과되었습니다!

따라서 내 질문은 내 모든 SSH 연결이 호스트를 사용하는 방식으로 이를 보다 투명하게 하는 방법이 있습니까 proxy_ssh?

답변1

위의 예에서는 모든 연결이 프록시 명령을 사용하도록 재귀적으로 만들 것이며, 이는 다시 다른 프록시 명령과 함께 ssh입니다. 프록시를 DOS하는 좋은 방법입니다.

목록에서 프록시를 제외하거나 -F /dev/null프록시 명령에 대한 구성을 무시하거나 프록시 SSH에 대한 프록시 명령을 무시해야 합니다.

ProxyCommand ssh -oProxyCommand=none my_user@proxy_ssh.example.com netcat -w 120 %h %p

답변2

프록시 명령을 재정의하는 점프 호스트 구성에 항목을 추가합니다.

Host proxy_ssh.example.com
  ProxyCommand none

그렇지 않으면 프록시 명령을 사용하여 점프 호스트 자체에 접근하려고 시도합니다.

관련 정보