![세 번째 컴퓨터에서 시작하여 한 서버에서 다른 서버로 파일 전송](https://rvso.com/image/1567484/%EC%84%B8%20%EB%B2%88%EC%A7%B8%20%EC%BB%B4%ED%93%A8%ED%84%B0%EC%97%90%EC%84%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EC%97%AC%20%ED%95%9C%20%EC%84%9C%EB%B2%84%EC%97%90%EC%84%9C%20%EB%8B%A4%EB%A5%B8%20%EC%84%9C%EB%B2%84%EB%A1%9C%20%ED%8C%8C%EC%9D%BC%20%EC%A0%84%EC%86%A1.png)
다음 구성으로 사이트 간 전송을 시도하고 있습니다. 전송을 시작하려는 이전 서버(서버 A), 새 서버(서버 B) 및 내 워크스테이션(wks)이 있습니다.
SSH 키 교환은 wks와 서버 A/B 간에 이루어졌습니다.
서버 A와 서버 B에는 키가 교환되지 않습니다.
내 워크스테이션에서 다음 명령을 시도했습니다.
scp -r root@server-A:/path/to/source/ root@server-B:/destination/path
하지만 작동하지 않습니다. 내가 아는 한, 서버 A는 서버 B에 연결을 시도하지만 키 교환이 완료되지 않아 실패합니다.
이 특정 구성에 대해 파일 전송을 작동시키는 방법을 알고 계십니까?
답변1
서버 A와 서버 B 간의 직접 연결을 사용하여 파일을 전송하는 것이 선호되는 방법입니다. 이것이 scp
하려는 일입니다. 관련 부분은man 1 scp
:
-3
두 원격 호스트 간의 복사본은 로컬 호스트를 통해 전송됩니다. 이 옵션이 없으면 데이터는 두 원격 호스트 간에 직접 복사됩니다. 이 옵션은 진행률 표시기를 비활성화합니다.
-3
"서버 A가 서버 B에 연결을 시도합니다"라는 옵션이 없다는 것이 맞습니다 . 내 테스트에 따르면 서버 B가 비밀번호 기반 인증을 허용하더라도 (비밀번호를 묻는 동안) tty와 상호 작용하는 것이 문제가 될 가능성이 가장 높습니다. 그러한 경우이 댓글유용할 것 같습니다:
ssh
서버 A로,scp
서버 A에서 시작합니다(하나의 명령). 파일을 두 번 복사하는 것을 방지합니다.
ssh
서버 A에 명시적으로 들어간 후에는 scp
서버 B의 비밀번호를 묻는 동안 tty와 상호 작용하는 데 문제가 없어야 합니다. 또는 ssh
서버 B에 들어가서 호출 할 수도 scp
있습니다.
불가능한 경우(키 필요, 비밀번호 허용 안 됨) scp -3
워크스테이션에서 사용하세요. 분명히 이는 로컬 시스템을 일종의 프록시로 사용하므로 데이터가 네트워크 연결을 따라 위아래로 흐릅니다.
그러나 모든 scp
구현이 지원되는 것은 아닙니다 -3
.