한 서버에서 다른 서버로의 SCP?


34

로컬 컴퓨터를 무시하고 한 서버에서 다른 서버로 직접 파일을 복사하려고합니다.

내가 했어

scp -r usrname@server1.com:~/data/* usrname@server2.com:~/data/
Password: 
Host key verification failed.
lost connection

이것이 가능합니까? 어떻게 고칠 수 있습니까?


다음 명령의 출력을 게시 할 수 있습니까? scp -r -v usrname@server1.com : ~ / data / * usrname@server2.com : ~ / data /
pragmatic

답변:


55

두 서버 사이에 연결이 없을 때 상당히 자주 사용하는 것

scp -3 user@server1:/path/to/file user@server2:/path/to/file

출처

-3 두 원격 호스트 사이의 사본이 로컬 호스트를 통해 전송됩니다. 이 옵션을 사용하지 않으면 데이터가 두 원격 호스트간에 직접 복사됩니다. 이 옵션은 진행률 표시기를 비활성화합니다.

youu가 둘 다에 잘 연결되어 있다고 가정하면 너무 느리지 않습니다.


또한 두 서버 모두에서 특수 포트를 사용해야하는 경우 : superuser.com/questions/686394/…
Pit

-r디렉토리를 복사하는 경우 플래그 를 추가하는 것을 잊지 마십시오 .
Taylor Edmiston

16

예, 가능하지만 해당 이름을 사용하여 server1.com도달 할 수 있는 경우에만 가능합니다 server2.com. 그렇지 않으면 아마도 메시지가 나타납니다.ssh: connect to host server2 port 22: Connection refused

man페이지 scp는 네트워크의 호스트간에 복사되며 다음 을 명확하게 설명합니다.

두 원격 호스트 사이의 사본도 허용됩니다.

당신은 (일단)해야 할 무엇 sshusername@server1.com거기가에서 sshusername@server2.com. 호스트 키 확인 메시지를 제거하려면 예와 함께 제공되는 진위성 질문에 대답하십시오.scp

다음을 사용하여 전달 에이전트를 활성화해야 할 수도 있습니다.

scp -o "ForwardAgent yes" -r usrname@server1.com:~/data/* usrname@server2.com:~/data/

그러나 그 위험을 깨닫게하십시오 ( man ssh_config)


나는 방금에 ssh이르기 server1.com까지 server2.com질문에 대답하고 성공했습니다. 그런 다음 로컬 컴퓨터로 돌아가서 다시 수행하고 server2.com의 비밀번호 프롬프트를받습니다. 그러나 거기 실패Permission denied (publickey,keyboard-interactive). lost connection
도박 Sibbs

1
@SibbsGambling 개인 키 전달에 의존한다고 생각합니다. 비밀번호를 제공하지 않고 두 서버 모두에 로그인 할 수 있습니까? 당신은에서 로그인 수 server1server2암호를 제공하지 않고. "ForwardAgent yes"를 설정해야 할 수도 있습니다.
Anthon

1

먼저 동일한 오류가 발생하면 오류없이 server2에 ssh 할 수 있는지 확인해야합니다. 파일을 열고 ~/.ssh/known_hostsserver2 키를 검색하여 삭제하십시오.

그런 다음 호스트 이름으로 서버를 ping 할 수 있는지 확인하십시오.

그렇지 않은 경우 아래 언급 된대로 서버 호스트 파일을 모두 편집하십시오.

 #vi /etc/hosts  
 server1 192.186.x.x  
 server2 192.186.x.xx   
 :wq   ---> to save  

이 CD로 서버에 복사하려는 파일의 위치로 작업을 마친 후

scp file_name user@server2:/path_to_the_directory ---> 당신은 당신이 말할 수있는 호스트 이름 대신 IP를 사용하여 -R디렉토리를 복사 할 수 있습니다.


0

~/.ssh/known_hosts두 서버 모두에 대한 적절한 레코드가 있는지 확인

server1 ~/.ssh/known_hosts에 server2에 대한 올바른 레코드 가 있는지 확인


-2

아래 명령을 사용하여 한 서버에서 다른 서버로 파일을 복사 할 수 있습니다.

scp source_user@source_remote_host:/usr/bin/mysql_backup.sh \
         target_user@target_remote_host:/var/tmp/
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.