ssh
나는 종종 집에서 파일과 운영 프로그램을 전송하여 이 작업을 자주 수행합니다 . 제가 주로 사용하는 기기는 직장에서 사용하는 데스크탑인데, ssh
이미 부서 네트워크에 연결되어 있지 않으면 직접 사용할 수 없습니다. 따라서 집에 있는 경우 ssh
먼저 부서의 네트워크에 연결한 다음 데스크톱에 연결 해야 합니다 .
ssh username@departmentnetwork
그런 다음
ssh username@desktop-departmentnetwork
이 설정은 집에서 파일을 전송하려면 scp
해당 파일을 부서 네트워크의 드라이브, ssh
부서 네트워크로 전송한 다음 scp
파일을 다시 데스크탑으로 전송해야 함을 의미합니다.
, , 및 중 일부 또는 전부를 사용하여 "네트워크 내의 네트워크"에 연결하는 ssh
방법 이 있습니까?scp
sshfs
답변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"
끔찍한 다이어그램을 무시하십시오 :)