네트워크의 특정 시스템에 SSH로 접속

네트워크의 특정 시스템에 SSH로 접속

ssh나는 종종 집에서 파일과 운영 프로그램을 전송하여 이 작업을 자주 수행합니다 . 제가 주로 사용하는 기기는 직장에서 사용하는 데스크탑인데, ssh이미 부서 네트워크에 연결되어 있지 않으면 직접 사용할 수 없습니다. 따라서 집에 있는 경우 ssh먼저 부서의 네트워크에 연결한 다음 데스크톱에 연결 해야 합니다 .

ssh username@departmentnetwork그런 다음 ssh username@desktop-departmentnetwork

이 설정은 집에서 파일을 전송하려면 scp해당 파일을 부서 네트워크의 드라이브, ssh부서 네트워크로 전송한 다음 scp파일을 다시 데스크탑으로 전송해야 함을 의미합니다.

, , 및 중 일부 또는 전부를 사용하여 "네트워크 내의 네트워크"에 연결하는 ssh방법 이 있습니까?scpsshfs

답변1

"게이트웨이" 시스템에 연결한 다음 "게이트웨이" 시스템 뒤에 있는 보조 시스템에 연결하도록 ProxyCommand설정할 수 있는 방식으로 이를 수행할 수 있습니다 .ssh

Host internal-host
    User sam
    IdentityFile ~/.ssh/id_rsa
    ProxyCommand ssh user@gateway nc internal-host.somedom.com %p

이 기술은 도구를 활용하여 nc커넥터 역할을 합니다. 이 문서에서는 작동 방식을 자세히 설명합니다.투명한 멀티홉 SSH.

ControlMaster제가 사용하는 또 다른 비결은 일단 인증되면 다른 연결을 계속 재인증할 필요 없이 이를 "재활용"할 수 있도록 설정에 하나를 추가하는 것입니다 .

Host *
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p

많은 호스트

내부 호스트가 여러 개인 경우 파일에서 사용할 수 있는 특수 변수를 사용하여 ~/.ssh/config호스트 이름( %h) 및 포트( )를 가져올 수 있습니다 %p.

Host host1 host2 host3
  User          internal-user
  ProxyCommand  ssh [email protected] nc %h %p

이렇게 하면 ssh host1시스템에서 호스트 1에 연결할 수 있습니다.

인용하다

답변2

@slm이 제안한 방법이 좋은 방법입니다. 다른 방법을 배우고 싶다면 SSH 터널을 통해서도 배울 수 있습니다.

ssh -t -l gatewayuser -L9997:127.0.0.1:9998 gatewayserver "ssh -l serveruser -D9998 -N internalserver"

끔찍한 다이어그램을 무시하십시오 :)

여기에 이미지 설명을 입력하세요.

관련 정보