원격 컴퓨터에서 로컬 컴퓨터로 또는 그 반대로 데이터를 전송하는 쉘 확장 또는 프로그램

원격 컴퓨터에서 로컬 컴퓨터로 또는 그 반대로 데이터를 전송하는 쉘 확장 또는 프로그램

(A), (B)를 건너뛰어야만 접근할 수 있는 로컬 컴퓨터(L)와 원격 컴퓨터(R)가 있습니다.

파일을 전송하기 위한 일반적인 루틴은 다음과 같습니다.

l@L$ ssh -t a@A ssh -t b@B ssh r@R
r@R$ # do some stuff till I find out I want to copy file x to L

그런 다음 새 터미널을 엽니다.

l@L ssh a@A
a@A ssh b@B
b@B scp r@R:PATH_TO_FILE a@A:TEMP
b@B <ctrl-D> to close
a@A scp TEMP r@R l@L:FINAL_DESTINATION

그리고 scp내 모든 홉에 대한 파일.

R에서 직접 파일을 복사할 수 있는 셸 확장이나 프로그램이 있는지 궁금합니다. stdout@R을 stdin@L로 파이핑하여 잡는 것과 유사합니다. 매우 효율적일 필요는 없습니다. 대부분의 경우 내 파일은 크기가 작지만(100kB 미만) 바이너리를 지원해야 합니다.

답변1

ssh구성 을 살펴보고 싶을 수도 있습니다 ProxyCommand. 그러면 작업이 더욱 원활해지고 셸, SFTP, 터널 및 SSH를 통해 프록시하려는 모든 항목에 대해 작동합니다.

다음과 같은 세 개의 호스트가 있다고 가정합니다.

  • workstation.example.com- 이것은 당신이 작업하고 있는 기계입니다.
  • proxy.example.com- SSH 트래픽을 라우팅하는 머신입니다.
  • endpoint.example.com- 여기가 트래픽이 끝나기를 원하는 곳입니다.

~/.ssh/configon 에 workstation다음을 추가합니다.

Host endpoint
    User WorkstationUser # set this to the username on the workstation host
    HostName endpoint.example.com
    ProxyCommand ssh [email protected] nc %h %p 2> /dev/null

proxy호스트 시스템 에 nc(netcat)이 설치되어 있는지 확인하십시오.

그런 다음 에서 프록시 호스트를 통해 해당 시스템에 투명하게 프록시를 사용할 수 workstation있습니다 .ssh endpointsftp endpoint

관련 정보