Я нашел команду для прямого scp моего файла на хост (C) через другой хост (B) с моего компьютера. Команда находится в этой форме:
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 опция работает в командной строке, но не в сценарии ожиданий. Может ли кто-нибудь сказать мне, почему?
Намного легче было бы настроить это в ~/.ssh/config, где вам не нужно заботиться о синтаксисе сценариев ожидания и его проблемах с аргументами. Создайте ~/.ssh/config с этим контентом:
Host C
ProxyCommand ssh -W %h:%p B
, а затем подключитесь только с помощью
spawn scp ./$arg1 C:destination
Или просто используйте упрощенную версию, используя опцию ProxyJump:
[ f3]Намного легче было бы настроить это в ~/.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
Намного легче было бы настроить это в ~/.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