동일한 네트워크에 있지 않은 두 서버 간 scp


13

두 개의 다른 VPN 연결로 액세스 할 수있는 두 개의 서버가 있습니다. 내 컴퓨터에서 두 VPN을 동시에 작동하게했습니다 (약간의 라우팅 규칙).

scp <remote1>:some/file <remote2>:destination/folder랩톱 터미널에서 작업하고 싶습니다 . 그러나 이것을 시도하면 remote1에서scp 호출 된 명령이 동일한 네트워크에 있지 않기 때문에 remote2를 찾을 수 없습니다 . 랩탑을 라우터로 명령 을 강제 로 통과시킬 수 있습니까?scp

Nautilus (서버, 두 서버에 연결 한 다음 복사하여 붙여 넣기)로 시도하면 작동하지만 터미널에서 수행하고 싶습니다.


remote1 과 remote2 모두에 연결되는 시스템입니다 . remote1 이 remote2에 액세스 할 수 없다는 오류가 있습니까?
— Jan

예, 오류는 ssh입니다. 호스트 이름 <remote2>을 (를) 확인할 수 없음 : 이름 또는 서비스를 알 수 없음 연결 끊김
— Danduk82

<remote2>에 직접 IP 주소를 사용하려고하면 잠시 후 연결이 끊어집니다 (행 아웃).
— Danduk82

그런 다음 remote2에 연결할 수없는 시스템이라고 생각합니다 . 아마도 VPN 연결이 시간 초과되거나 비정상적인 것일 수 있습니다.
— Jan

DNS가 작동하더라도 작동하지 않습니다. 정말 scp 명령의 시도가 사이의 연결 실행하는 느낌이 REMOTE1 및 REMOTE2를 직접 REMOTE1을 .
— Danduk82

답변:


34

최신 버전의 scp에는 -3 옵션이 있습니다.

-삼

Copies between two remote hosts are transferred through the local host. Without this option the data is copied directly between the two remote hosts

큰! 정확히 내가 필요한 것. 감사합니다
— Danduk82

1
위대한 발견, 나는 그것을 몰랐다!
— Jan

9

보다 유연성이 더 필요한 경우 scp -3일반 ssh파이프가 재미 있습니다.

이는 로컬 컴퓨터를 통해 스트림을 리디렉션하는 것과 같습니다.

ssh sourceRemote 'cat /path/to/sourceFile' \
| ssh destinationRemote 'cat > /path/to/destinationFile'

그런 다음 언제든지 여러 중간 시스템을 연결하거나 전송되는 파일의 로컬 복사본을 라우팅 할 때 스트림 리디렉션을 추가 할 수 있습니다.


2
소스 시스템이 pv설치되어 있고 첫 번째 시스템 을 교체하면 멋진 진행 표시 줄이 나타납니다 cat.
— liori

6

@Anko의 답변을 확장하면 tar여러 파일에 사용할 수 있습니다 .

ssh -q user@sourcehost 'cd /source/path; tar -czf - files...' | \
ssh -q user@desthost 'cd /dest/path; tar -xzf -'

압축은 전적으로 선택 사항입니다. 데이터가 압축률이 높거나 오버 헤드를 보장 할만큼 크지 않을 수 있습니다. 버전이있는 경우 tar지원하지 않습니다 -z통해 스위치, 파이프 gzip -c및 gzip -dc각각.

추신 : tar추출시 슬래시를 제거하지 않는 버전을주의하십시오 (즉, 제공된 경우 절대 경로 이름에 쓰십시오).

편집 : -e none의사 터미널이 할당되지 않기 때문에 파이프에는 필요하지 않습니다.


1
ssh-C스트림 압축을 활성화 하는 플래그가 있습니다. man-page 에 따르면 동일한 알고리즘을 사용합니다 gzip. 매뉴얼 페이지는 또한 언제 사용할 것인지를 설명합니다. "모뎀 회선 및 기타 느린 연결에서는 압축이 바람직하지만 빠른 네트워크에서는 속도가 느려집니다."
— Anko

4
@Anko, -C여기서 사용하는 문제 는 로컬 컴퓨터가 데이터를 압축 해제하고 다시 압축해야한다는 것입니다. 말하는 tar압축 된 데이터를 처리하지 않고 직선 파이프를 통해 전달되는 압축 방법을 수행.
— CJM
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.