로컬 시스템을 우회하여 한 서버에서 다른 서버로 직접 파일을 복사하려고 합니다.
내가 해냈어
scp -r [email protected]:~/data/* [email protected]:~/data/
Password:
Host key verification failed.
lost connection
가능합니까? 어떻게 해결할 수 있나요?
답변1
두 서버 사이에 연결이 없을 때 자주 사용하는 것
scp -3 user@server1:/path/to/file user@server2:/path/to/file
원천
-3 두 원격 호스트 간의 복사본은 로컬 호스트를 통해 전송됩니다. 이 옵션이 없으면 데이터가 두 원격 호스트 간에 직접 복사됩니다. 이 옵션은 진행률 표시기를 비활성화합니다.
두 가지 모두에 잘 연결되어 있다고 가정하면 속도가 너무 느려서는 안됩니다.
답변2
예, 가능합니다. 하지만 해당 이름을 사용하여 액세스 server1.com
할 수 있는 경우에만 가능합니다. server2.com
그렇지 않은 경우 다음 메시지를 받을 수 있습니다.ssh: connect to host server2 port 22: Connection refused
페이지 man
에는 scp
네트워크의 호스트 간에 복제된다는 점과 다음 사항이 명확하게 명시되어 있습니다.
또한 두 원격 호스트 간의 복제도 허용합니다.
당신이 (한 번) 해야 할 일은 거기에 ssh
도착하는 것입니다 . 다음 작업을 수행할 때 호스트 키 확인 메시지를 제거하려면 "예"를 선택하여 진위 여부에 대한 질문에 답하세요.[email protected]
ssh
[email protected]
scp
다음을 통해 정방향 프록시를 활성화해야 할 수도 있습니다.
scp -o "ForwardAgent yes" -r [email protected]:~/data/* [email protected]:~/data/
하지만 위험을 인지하고 있는지 확인하십시오 ( man ssh_config
)
답변3
먼저 오류 없이 server2에 SSH로 연결할 수 있는지 확인해야 합니다. 동일한 오류가 발생하면 파일을 열고 ~/.ssh/known_hosts
server2 키를 검색하여 삭제합니다.
그런 다음 호스트 이름으로 서버를 핑할 수 있는지 확인하십시오.
그렇지 않은 경우 아래 설명에 따라 서버 호스트 파일을 편집하십시오.
#vi /etc/hosts
server1 192.186.x.x
server2 192.186.x.xx
:wq ---> to save
이 작업이 완료되면 서버 2에 복사하려는 파일 위치로 이동하세요.
--- scp file_name user@server2:/path_to_the_directory
> 호스트 이름 대신 IP를 사용하여 디렉터리를 복사할 수 있습니다 -R
.
답변4
Linux의 경우 다음 명령을 사용하여 한 서버에서 다른 서버로 파일/폴더를 원활하게 복사합니다. 이렇게 하면 서버 연결이 끊어지더라도 작업이 완료됩니다.
nohup bash -c 'scp -r [user_source@Soure_Server_ip]:/[path_to_folder] [user_dest@destination_server_ip]:/[path_to_destination_folder]'>/dev/null 2>&1