如何使用scp命令从本地PC在两个远程服务器之间复制文件?
远程服务器1:IP = 67.12.21.133&端口= 6774
远程服务器2:IP = 67.129.242.40&端口= 6774
scp -rp -P 6774 denny@67.12.21.133:/home/denny/testapp1.txt denny@67.129.242.40:
输入密码67.12.21.133后,出现错误,
ssh:连接到主机67.129.242.40端口22:连接被拒绝
失去了连接
如何使用scp命令从本地PC在两个远程服务器之间复制文件?
远程服务器1:IP = 67.12.21.133&端口= 6774
远程服务器2:IP = 67.129.242.40&端口= 6774
scp -rp -P 6774 denny@67.12.21.133:/home/denny/testapp1.txt denny@67.129.242.40:
输入密码67.12.21.133后,出现错误,
ssh:连接到主机67.129.242.40端口22:连接被拒绝
失去了连接
Answers:
您可以~/.ssh/config
用来指定用于主机的端口(以及用于设置许多其他功能的内容;请参见手册页man ssh_config
):
# ~/.ssh/config
Host 67.12.21.133
Port 6774
Host 67.129.242.40
Port 6774
这样做时,您必须使用-3
scp 选项,该选项会通过本地计算机复制文件。否则,scp在第一个主机上通过ssh发出scp命令,因此它实际上会运行
ssh -p 6774 denny@67.12.21.133 scp -rp /home/denny/testapp1.txt denny@67.129.242.40:
然后使用第一个远程主机(67.12.21.133)的〜/ .ssh / config代替您的本地主机。
~/.ssh/config
正确设置后,这应该可以工作:
scp -rp3 denny@67.12.21.133:/home/denny/testapp1.txt denny@67.129.242.40:
当然,您也可以将〜/ .ssh / config文件的内容复制到第一个远程主机上,然后可以使用不带该-3
选项的scp ,这可能会加快传输速度。
或者,您可以使用scp使用的技巧并使用这样的命令行:
ssh -p 6774 denny@67.12.21.133 scp -rp -P 6774 /home/denny/testapp1.txt denny@67.129.242.40:
(请注意ssh和scp端口参数的不同情况:ssh -p 6774
vs。scp -P 6774
)
PS:我从OpenSSH bugzilla获得了此信息,在这里我将其作为bug输入:https ://bugzilla.mindrot.org/show_bug.cgi?id =2020
我发现没有简单的解决方案,但是您可以尝试通过以下方式使用sshfs:
mkdir /tmp/h1
mkdir /tmp/h2
sshfs -p 6774 user1@host1:/public /tmp/h1
sshfs -p 2211 user2@host2:/data/src /tmp/h2
cp /tmp/h1/files.* /tmp/h2
fusermount -u /tmp/h1
fusermount -u /tmp/h2
另一种方法是使用ssh(实际上未成功测试):
ssh user1@host1 "cat /public/file.bin" | ssh user2@host2 "cat >/data/file.bin"
目前,我找不到输入两个密码的正确方法。它有时要求输入两个密码,但不接受任何人。也许如果您在主机之间交换ssh密钥,它将起作用。因为您不需要密码。
我希望这有帮助?汤玛士
根据Linux Academy博客上的此页面,您仅需要-P 6774
在第二条远程路径之前使用该选项:
scp -rp -P 6774 denny@67.12.21.133:/home/denny/testapp1.txt -P 6774 denny@67.129.242.40:
每次使用该-P
标志仅适用于命令行中的下一个位置,而不适用于整个命令。-P
在它和上一个路径(或命令名[ scp
])之间没有任何位置的任何位置默认为标准端口(22)。
-P: No such file or directory
。
scp
与此处引用的实现不同。
如果需要将数据从一台服务器传输到另一台服务器,请使用SCP命令。这样做
只需按键盘上的Ctrl+ Alt+ T打开终端。打开时,运行以下命令。
scp -pr root@192.168.1.2:/path/to/files /destination/path
注意:如果要提及端口号,则可以使用参数-P。