我想scp通过另一个主机 (B) 将文件传输到主机 (C)。我可以使用以下命令:
scp -oProxyCommand="ssh -W %h:%p B" thefile C:destination
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但这个不起作用:
scp -oProxyJump=B thefile C:destination
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
command-line: line 0: Bad configuration option: proxyjump
Run Code Online (Sandbox Code Playgroud)
我检查了scp手册(man scp)。我的scp命令没有ProxyJump选项,但有ProxyCommand选项。我更新了,openssh-client但没有帮助。
有人知道原因吗?
您有不支持该ProxyJump选项的旧 OpenSSH 版本。它是在OpenSSH 7.3中引入的,因此如果您需要使用它,则需要获取此版本或更新版本(您的发行版可能未提供它)。
但正如已经说过的,您可以ProxyJump使用ProxyCommand(如原始问题中指出的那样)重写每个命令:
Host C
ProxyCommand ssh -W %h:%p B
Run Code Online (Sandbox Code Playgroud)
小智 4
如果您经常通过跳转服务器将文件复制到此目标,您可以通过在客户端 ~/.ssh/config 中创建一个条目来减少输入:
Host C
User dest_user1
Hostname 5.6.7.8
ProxyCommand ssh user_on_B@B nc %h %p 2> /dev/null
Run Code Online (Sandbox Code Playgroud)
有了这个,您就可以scp thefile C:destination:上例中的主机名“5.6.7.8”可以替换为仅对跳转服务器可见的某些机器IP或名称(即:没有全局DNS条目)
| 归档时间: |
|
| 查看次数: |
12439 次 |
| 最近记录: |