Como posso usar o comando scp para copiar arquivos entre dois servidores remotos do meu PC local?
servidor remoto 1: IP = 67.12.21.133 & port = 6774
servidor remoto 2: IP = 67.129.242.40 & port = 6774
scp -rp -P 6774 [email protected]: /home/denny/testapp1.txt [email protected]:
Ele comete um erro após fornecer a senha 67.12.21.133,
ssh: conecte ao host 67.129.242.40 porta 22: conexão recusada
conexão perdida
Respostas:
Você pode usar
~/.ssh/config
para especificar as portas a serem usadas para os hosts (e para definir muitas outras coisas interessantes; consulte a página do manualman ssh_config
):Ao fazer isso, você deve usar a opção
-3
scp, que copia os arquivos na sua máquina local. Caso contrário, o scp emitirá o comando scp via ssh no primeiro host, portanto, ele realmente será executadoe então o ~ / .ssh / config do primeiro host remoto (67.12.21.133) é usado no lugar do host local.
Quando você configurou o seu
~/.ssh/config
corretamente, isso deve funcionar:Obviamente, você também pode copiar o conteúdo do arquivo ~ / .ssh / config no seu primeiro host remoto e, em seguida, usar o scp sem a
-3
opção, o que provavelmente acelerará a transferência.Ou você pode usar o truque que o scp usa e usar essa linha de comando:
(Observe o caso diferente do parâmetro port para ssh e scp:
ssh -p 6774
vs.scp -P 6774
)PS: Eu obtive essas informações no bugzilla do OpenSSH, onde as inseri como um bug: https://bugzilla.mindrot.org/show_bug.cgi?id=2020
fonte
Não encontrei uma solução fácil, mas você pode tentar usar o sshfs da seguinte maneira:
Outra maneira poderia ser usar o ssh (na verdade não foi testado com êxito):
Atualmente, não encontrei o caminho certo para inserir as duas senhas. Ele solicita algumas vezes as duas senhas, mas não aceita ninguém. Talvez se você trocar as chaves ssh entre os hosts, isso funcione. Porque você não precisa das senhas.
Eu espero que isso ajude? Thomas
fonte
De acordo com esta página no blog da Linux Academy, você também precisa usar a
-P 6774
opção antes do segundo caminho remoto:Cada uso do
-P
sinalizador se aplica somente ao próximo local na linha de comando, não ao comando inteiro. Qualquer local que não tenha um-P
entre ele e o caminho anterior (ou o nome do comando [scp
]) é padronizado para a porta padrão (22).fonte
-P: No such file or directory
.scp
mencionada aqui.Se você precisar transferir dados de um servidor para outro, use o comando SCP. Para fazer isso
Basta pressionar Ctrl+ Alt+ Tno teclado para abrir o Terminal. Quando abrir, execute o comando abaixo.
Nota: O parâmetro -P pode ser usado se você quiser mencionar o número da porta.
fonte