我找到了一个命令,可以直接将我的文件从我的计算机通过另一台主机 (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