한 호스트에서 다른 호스트로 SSH ProxyCommand [닫기]

한 호스트에서 다른 호스트로 SSH ProxyCommand [닫기]

ENV에는 2개의 Jumphost 서버가 있고 원격 서버에 로그인하고 sshproxy의 도움으로 ssh 명령을 실행하려고 합니다. 각 위치에 ssh/confg 파일이 있으며 Jump2 서버에 들어갑니다. 모든 위치 서버에 동시에 액세스할 수 있도록 구성 파일을 병합하려고 합니다.

아래 ENV
노트북 --------> Jumphost1 ---------> Jumphost2 --------->원격 서버를 참조하세요.

실제로 우리는 로컬 컴퓨터에서 스크립트를 실행하고 출력을 로컬에 저장할 계획입니다. 따라서 이 작업을 보관하려면 2개의 점프 호스트에 SSH로 연결하고 원격 서버에서 다음 명령을 실행해야 합니다. 그러면 로컬 시스템에서 스크립트가 실행되고 로컬 시스템 자체에서 출력이 표시됩니다.

Jump1은 포트 2222를 통해 액세스할 수 있으며 사용자는 동일한 사용자입니다.

하지만 원격 서버에 접속하려면 다른 사용자 1이 있어야 합니다.

ssh user1@ip < ./script >> file.txt &&

~/.ssh/config를 설정합니다:

호스트 점프 1 사용자 점프1사용자 포트 2222 호스트 점프 2 ProxyCommand ssh -W %h:%p 점프 1 사용자 점프2user 호스트 RemoveServer ProxyCommand ssh -W %h:%p 점프 2 사용자 원격 사용자

위 파일을 통해 Jump2 서버에 문제 없이 바로 로그인이 가능합니다. 하지만 우리는 모든 위치에 대해 매번 구성 파일을 변경해야 합니다.

각 영역에서 정보를 수집하기 위해 스크립트에서 아래의 예시 ssh 명령을 실행하려면 구성 파일이 필요합니다.

ssh jump2 | ssh user1@remoteserver-ip < ./script >> file.txt &&

답변1

이 예제를 통해 단 하나의 파일만 사용할 수 있기를 바랍니다.

Host *
    User username
    IdentityFile /home/username/.ssh/identity

Host some*
    ProxyCommand /usr/bin/ssh -p 2222 username@jumphost /usr/bin/nc %h %p 2> /dev/null

Host other*
    ProxyCommand /usr/bin/ssh -p 2222 username@otherjumphost /usr/bin/nc %h %p 2> /dev/null

Host something
    HostName 1.2.3.4

Host somethingelse
    HostName 2.3.4.5

Host otherthing
    HostName 3.4.5.6

답변2

Host remotehost
    ProxyCommand /usr/bin/ssh -p 2222 username@jumphost /usr/bin/nc %h %p 2> /dev/null

설명했듯이 점프 호스트는 포트 2222에서만 액세스할 수 있으므로 프록시 SSH 연결에 해당 사실을 알려야 합니다.

질문에 대한 추가 편집으로 실제로프록시할 호스트는 조금 더 복잡해지지만 조금만 더 복잡해집니다. 반면:

  • local.example.com- 직접 작업하는 호스트
  • jump1.example.com- 직접 연결된 호스트local
  • jump2.example.com- 직접 연결된 호스트jump1
  • endpoint.example.com- 최종적으로 연결하려는 호스트

에서 local.example.comSSH 구성에 다음을 추가합니다.

host endpoint.example.com
    ProxyCommand /usr/bin/ssh -p 2222 [email protected] /usr/bin/nc %h %p 2> /dev/null

에서 jump1.example.comSSH 구성에 다음을 추가합니다.

host endpoint.example.com
    ProxyCommand /user/bin/ssh -p 2222 [email protected] /usr/bin/nc %h %p 2> /dev/null

이제 두 개의 프록시를 통해 액세스할 수 있습니다.ssh [email protected]local.example.com

관련 정보