0
我有一個期望腳本,目前爲止它工作正常......它在現有的ssh通道上產生一個ssh會話,像這樣:
spawn ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o {ProxyCommand=nc -X 5 -x localhost:8888 %h %p} "$user_ip"
$user_ip
擁有用戶名和目的IP,通過SSH如預期一樣[email protected]
的問題是,有時,端口8888正在由另一個SSH隧道,每一次遇到這種情況我有調整代碼並更改隧道端口。
所以,我試圖發送一個變量的端口,以避免觸摸代碼的所有時間。 我得到命令行隧道口,如:
set proxy_port [lindex $argv 2]
然後
spawn ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o {ProxyCommand=nc -X 5 -x localhost:"$proxy_port" %h %p} "$conn"
我看到proxy_port
變量設置正確,但是當腳本嘗試產卵的SSH,我得到:
spawn ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o {ProxyCommand=nc -X 5 -x localhost:8888 %h %p} [email protected]
command-line line 0: garbage at end of line; "-o".
send: spawn id exp5 not open
while executing
"send "$pwd\r""
(file "./amm-qev.new.exp" line 36)
在上面的錯誤中,我看到該端口被正確替換,但它是抱怨ssh語法。
那裏有什麼毛病,我的軟弱眼睛沒有抓住?
Stack Overflow是編程和開發問題的網站。這個問題似乎與題目無關,因爲它不涉及編程或開發。請參閱幫助中心的[我可以詢問哪些主題](http://stackoverflow.com/help/on-topic)。也許[超級用戶](http://superuser.com/)或[Unix&Linux堆棧交換](http://unix.stackexchange.com/)會是一個更好的地方。另請參閱[我在哪裏發佈關於Dev Ops的問題?](http://meta.stackexchange.com/q/134306) – jww
@jww我同意_「Stack Overflow是編程和開發問題的網站」,但是,完全不同意「這不是關於編程或開發」。這個問題是關於用** expect **腳本語言進行編程時發生的問題......就像許多人發佈的** Stack Overflow ** – Renato