두 개의 원격 SSH 서버간에 파일 전송 창을 열고 일부에

두 SSH / SFTP 서버간에 파일을 쉽게 전송할 수 있습니까? 완벽한 솔루션은 FileZilla이지만 로컬과 원격 간의 연결 만 만들 수 있지만 원격과 원격 간의 연결은 만들 수 없습니다.

이론적으로 나는 두 노틸러스 창을 열고 일부에 연결할 수 ssh://server1/path/to/folderssh://server2/path/to/folder다음 바로 다른 측면에 하나의 파일을 당깁니다. 내 경험은 이것이 매우 불안정하다는 것입니다. 크기가 10MB 인 파일을 전송해도 문제는 없지만 10GB를 전송하면 노틸러스가 종종 끊어지고 ps -e | grep nautilus-> 가 필요합니다 kill -9 <pid>. 또한 Nemo와 Caja에서도 같은 것을 테스트했습니다. Nemo는 다른 두 가지보다 더 안정적인 경향이 있지만 여전히 완벽하지는 않으며 때때로 끊어집니다. FileZilla는 매우 안정적이며 실제로 중단되지는 않지만 단일 SSH 서버에만 연결할 수 있다는 언급 때문에 매우 유연하지 않습니다.

물론으로 폴더를 마운트 할 수도 sshfs있지만 이는 불편한 해결책입니다. 간단한 전송을 실행하기 위해 수행해야 할 작업이 너무 많습니다.

두 SSH 서버 간의 전송을 중단하지 않고 처리 할 수있는 앱이 있습니까? 완벽은 FileZilla와 같으며 연결이 중단되면 작업을 다시 선택합니다.



답변

여전히 지원되는 Ubuntu 버전을 사용하는 경우 scp명령은 localhost 를 통해 remote1 에서 remote2로-3 파일을 복사 할 수있는 스위치를 제공합니다 .

me@local:~> scp -3 user1@remote1:/path/to/file1 user2@remote2:/path/to/file2

-3스위치를 생략 할 수도 있지만 다음 파일 에 있는 공개 키 ( id_rsa.pub) 가 필요합니다 .user1@remote1authorized_keysuser2@remote2

me@local:~> scp user1@remote1:/path/to/file1 user2@remote2:/path/to/file2

scp그런 다음 후드 아래에서 ssh user1@remote1첫 번째 작업을
수행합니다 scp /path/to/file1 user2@remote2:/path/to/file2. 따라서 자격 증명을 -3솔루션 과 다르게 배포해야합니다 .

다른 말로:

  • scp -3 remote1:file1 remote2:file2파일을 remote1 에서 localhost 로 전송 한 다음 remote2 로 다시 전송합니다
    . 데이터는 remote1 → localhost → remote2로 이동합니다 . 로컬 호스트는 따라서이 시나리오에서 제 3 자입니다 -3. 이 작업을 수행하려면, 당신은에서 자격 증명이 필요합니다 로컬 호스트를
    모두 REMOTE1REMOTE2 때문에 로컬 호스트 둘 다에 연결합니다.

  • scp remote1:file1 remote2:file2서로 연결된 속도로 파일을 remote1 에서 remote2 로 직접 복사합니다
    . localhost 는 여기에 포함되지 않습니다 (명령 발행 외에). 데이터는 remote1 → remote2로 이동합니다 . 이 작업을 수행하려면, 당신은에서 자격 증명을해야합니다 로컬 호스트
    에서만 REMOTE1 하지만 또한 당신의 자격 증명이 필요 REMOTE1을REMOTE2 때문에 로컬 호스트 커넥트가 REMOTE1
    만 다음 REMOTE1 에 연결을 REMOTE2 .

가능하면 두 번째 방법을 선택합니다. 일부 의견에서 이미 언급했듯이 일반적으로 remote1remote2 사이의 네트워크 케이블은 그들과 localhost 사이의 케이블보다 훨씬 두껍습니다 .


답변

대부분의 경우 두 개의 ssh 서버가 서로 연결될 수 있으며 (또는 적어도 하나는 다른 서버에 도달 할 수 있음), 대부분의 경우 워크 스테이션의 인터넷이 서버 중 하나보다 훨씬 나쁩니다.

그렇다면 한 서버에서 다른 서버로 전송하도록 주문하는 것이 좋습니다.

ssh server1 nohup scp somefile server2:somefile

nohup.outserver1에서 오류를 점검하십시오 .

서버 연결 가능성이 다른 경우 마스터 인 시스템을 되돌릴 수 있습니다.

ssh server2 nohup scp server1:somefile somefile

답변

아마도 여러 GUI 프론트 엔드 중 하나를 사용하여 rsync 할 수 있습니다.

rsync 명령에 대한 GUI 응용 프로그램이 있습니까?

또는 명령 줄에서 rsync를 직접 사용하여 두 원격 서버에 연결할 수도 있습니다.

“두 리모컨 사이에서 파일을 재 동기화하는 방법”

나는 종종 ssh로 한 서버에 로그인 한 다음 서버의 명령 줄에서 rsync를 사용하여 파일을 다른 원격 서버로 푸시하거나 가져옵니다. 일반적으로 일부 컴퓨터를 통해 파일을 전송하는 것보다 훨씬 빠릅니다.

rsync는 약간의 작업을 수행하기에 충분히 영리한데, 문제가 발생하여 프로세스를 중단하면 나중에 중단 된 지점에서 다시 시작할 수 있습니다.


답변

SCP 프로토콜을 사용해야합니다.
scp file you want to transfer login@address_of_second_server:/path_where_you_want_to_save