원격 서버에서 로컬 SSH로 다른 원격 서버로 scp

원격 서버에서 로컬 SSH로 다른 원격 서버로 scp

현재 내 로컬 컴퓨터로 전송하려는 파일이 serverB에 있습니다. serverB에 연결하려면 먼저 serverA에 SSH를 연결한 다음 serverB에 SSH를 연결합니다. (예: ssh @serverA, 그런 다음 serverA 내 -> ssh @serverB)

scp를 사용하여 이 작업을 수행하는 가장 좋은 방법이 무엇인지 모르시나요?

답변1

ProxyJump의 옵션을 사용할 수 있습니다 ~/.ssh/config. 에서 man ssh:

-J 목적지

먼저 대상 호스트에 대한 연결을 만듭니다.SSH대상이 설명하는 점프 호스트에 연결한 후 그곳에서 최종 대상으로 TCP 전달을 설정합니다. 여러 점프를 쉼표로 구분하여 지정할 수 있습니다. 지정하는 단축키입니다.프록시 점프구성 지침. 명령줄에 제공된 구성 지시문은 일반적으로 지정된 점프 호스트가 아닌 대상 호스트에 적용됩니다. 점프 호스트의 구성을 지정하려면 ~/.ssh/config를 사용하십시오.

예를 들어 ~/.ssh/config다음과 같을 수 있습니다.

Host serverA
Port 22

Host serverB
Port 22
ProxyJump serverA

ssh이것은 항상 serverB에 연결 하도록 지시합니다.통과하다serverA는 정상이고 입니다 ssh. scp즉, ssh serverB또는 를 입력하면 scp serverB:big_file.txt .ServerA를 통해 라우팅된다는 것을 알 수 있습니다. (그러나 공개 키 인증을 사용하는 경우 serverB에는 필수 키의 로컬 복사본이 필요합니다.)

이를 종종 "점프 호스트"라고 합니다 ssh. 의 관련 구성 옵션은 ~/.ssh/config입니다 ProxyCommand.

답변2

한 가지 방법은피크로신해결책, 다른 방법이 있습니다.

  1. 여러번 필요한 경우 sshfs사용하는 것이 좋습니다.서버 A그리고scp from local to serverA
  2. 한 번만 필요하면 사용할 수 있으니 ssh tunnel 주의하세요.이것터널링을 위한sshfs
ssh to serverA
sshfs user@serverB:/foldertomount/ ~/mountpoint
scp ~/mountpoint/desiredFile LocalIP:/Path/

관련 정보