我想scp
通过另一台主机 (B) 将文件发送到主机 (C)。我可以使用以下命令:
scp -oProxyCommand="ssh -W %h:%p B" thefile C:destination
而且它工作得很好,但是这个不起作用:
scp -oProxyJump=B thefile C:destination
我收到以下错误:
command-line: line 0: Bad configuration option: proxyjump
我查看了scp
手册(man scp
)。我的scp
命令没有ProxyJump
选项,但有ProxyCommand
选项。我更新了openssh-client
,但没有帮助。
有人知道原因吗?
答案1
如果您频繁地通过跳转服务器将文件复制到此目的地,则可以通过在客户端 ~/.ssh/config 中创建一个条目来减少输入:
Host C
User dest_user1
Hostname 5.6.7.8
ProxyCommand ssh user_on_B@B nc %h %p 2> /dev/null
有了这个,你就可以:scp thefile C:destination
。上面例子中的主机名“5.6.7.8”可以替换为仅对跳转服务器可见的某些机器 IP 或名称(即:没有全局 DNS 条目)
答案2
您的 OpenSSH 版本较旧,不支持该ProxyJump
选项。它于OpenSSH 7.3因此如果您需要使用它,您需要获取此版本或更新版本(您的发行版可能不提供它)。
但正如已经说过的,你可以ProxyJump
使用ProxyCommand
(如在原始问题):
Host C
ProxyCommand ssh -W %h:%p B