首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >两个不同端口的SCP

两个不同端口的SCP
EN

Ask Ubuntu用户
提问于 2012-06-21 05:15:33
回答 4查看 41.6K关注 0票数 17

如何使用scp命令在两个远程服务器之间从本地PC复制文件?

远程服务器1: IP=67.12.21.133和port=6774

远程服务器2: IP=67.129.242.40和port=6774

scp -rp -P 6774 denny@67.12.21.133://denny/testapp1.txt denny@67.129.242.40:

在输入密码67.12.21.133后出现错误,

ssh:连接到主机67.129.242.40端口22:连接拒绝

失去连接

EN

回答 4

Ask Ubuntu用户

发布于 2012-06-21 14:10:33

您可以使用~/.ssh/config来指定主机使用的端口(以及设置许多其他好东西;查看手册页man ssh_config):

代码语言:javascript
复制
# ~/.ssh/config

Host 67.12.21.133
  Port 6774

Host 67.129.242.40
  Port 6774

在执行此操作时,您必须使用选项-3来scp,该选项通过本地计算机复制文件。否则,scp通过第一个主机上的ssh发出scp命令,因此它实际运行。

代码语言:javascript
复制
 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时,应该可以这样做:

代码语言:javascript
复制
scp -rp3 denny@67.12.21.133:/home/denny/testapp1.txt denny@67.129.242.40:

当然,您也可以将~/..ssh/config文件的内容复制到第一个远程主机上,然后可以使用scp而不使用-3选项,这可能会加快传输速度。

或者您可以使用scp使用的技巧并使用这样的命令行:

代码语言:javascript
复制
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 6774scp -P 6774)

PS:我从OpenSSH bugzilla获得了这个信息,在那里我输入了一个bug:https://bugzilla.mindrot.org/show_bug.cgi?id=2020

票数 23
EN

Ask Ubuntu用户

发布于 2012-06-21 07:07:11

我没有找到简单的解决方案,但您可以尝试以以下方式使用sshfs:

代码语言:javascript
复制
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 (实际上没有经过成功测试):

代码语言:javascript
复制
ssh user1@host1 "cat /public/file.bin" | ssh user2@host2 "cat >/data/file.bin"

目前我还没有找到正确的方法输入这两个密码。它要求几次这两个密码,但不接受任何人。也许,如果您在主机之间交换ssh密钥,它就能工作。因为你不需要密码。

我希望这能帮到你?托马斯

票数 8
EN

Ask Ubuntu用户

发布于 2013-06-12 01:08:17

根据Linux博客上的此页,您只需在第二个远程路径之前使用-P 6774选项:

代码语言:javascript
复制
scp -rp -P 6774 denny@67.12.21.133:/home/denny/testapp1.txt -P 6774 denny@67.129.242.40:

每次使用-P标志都只适用于命令行的下一个位置,而不是整个命令。在它和前面的路径(或命令名scp)之间没有-P的任何位置都默认为标准端口(22)。

票数 6
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/153960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档