我有一個奇怪的問題我試圖SSH連接到腳本里面的遠程設備,所以我可以發送命令給它,但奇怪的是它要求輸入密碼之前的SSH連接我甚至可以調用expect命令。我的片段是這樣的:SSH連接在密碼可以發送之前請求密碼
#!/usr/bin/expect
set PASS="password"
echo {$PASS}
ssh [email protected] -p 4118 #Firewall Device IP
expect {
"Password: "
{send '$PASS\r'}
}
和輸出我得到的是這樣的:
password
Password:
我不知道爲什麼它表現這樣。
編輯: 我申請通過@glenn傑克曼建議的修改,新的代碼之中:
#!/usr/bin/expect
set PASS "peak1234"
puts "$PASS"
ssh [email protected] -p 4118 #Firewall Device IP
expect "Password :"
send "$PASS\r"
這些變化我得到的錯誤:
set: Variable name must begin with a letter.
學習一點tcl,否則它會太艱難,你會正確地工作。 – Jahid