期望脚本通过中间主机进行 scp

期望脚本通过中间主机进行 scp

我找到了一个命令,可以直接将我的文件从我的计算机通过另一台主机 (B) 复制到主机 (C)。该命令的格式如下:

scp -oProxyCommand="ssh -W %h:%p B" thefile C:destination

我使用过它,它在命令行中运行良好。但是当我想使用此命令编写一个期望脚本时,我收到了一些错误。我编写的脚本采用以下形式:

#!/usr/bin/expect

set arg1 [lindex $argv 0]

spawn scp -oProxyCommand="ssh -W %h:%p B" ./$arg1 C:destination 

interact

错误是:

unknown option -- W 

W选项在命令行中有效,但在期望脚本中无效。有人能告诉我为什么吗?

答案1

在 中配置它会更加容易~/.ssh/config,你不需要关心期望脚本的语法及其参数问题。~/.ssh/config使用以下内容创建:

Host C
  ProxyCommand ssh -W %h:%p B

然后使用连接

spawn scp ./$arg1 C:destination

或者只使用简化版本使用ProxyJump选项:

spawn scp -oProxyJump=B ./$arg1 C:destination 

相关内容