您好我有以下腳本,使ssh登錄到我的服務器。SSH期待登錄密碼問題
spawn ssh [email protected]
expect "*(yes/no)?"
send "yes"
expect "password:"
send "pwd\n"
close
它工作正常,但它沒有將'pwd'值傳遞給系統,所以腳本超時並退出。 有什麼建議嗎?
您好我有以下腳本,使ssh登錄到我的服務器。SSH期待登錄密碼問題
spawn ssh [email protected]
expect "*(yes/no)?"
send "yes"
expect "password:"
send "pwd\n"
close
它工作正常,但它沒有將'pwd'值傳遞給系統,所以腳本超時並退出。 有什麼建議嗎?
您可以嘗試將「KbdInteractiveAuthentication」設置爲「否」 (ssh -o KbdInteractiveAuthentication="no" [email protected]
)。默認情況下,SSH使用鍵盤交互式身份驗證,這是expect
可能無法理解的。
我強烈建議您使用公鑰認證來代替(正如Flo所推薦的那樣)。處理起來更方便,方式更安全,方式更舒適。如果您只是在尋找一種登錄遠程服務器的方式,而無需每次輸入密碼,請查看ssh-agent,它將在您的桌面會話中輸入一次後爲您存儲密碼。如果您確實不想輸入密碼,請使用pam_ssh,您的桌面登錄密碼將被使用。
默認情況下,尚未安裝expect命令。所以,你要安裝它來獲取正確的輸出。
我寧願建議在腳本中使用ssh密鑰來使用ssh,然後在該腳本文件中使用密碼。 –
「它工作正常,但它不會將'pwd'值傳遞給系統,所以腳本超時並退出。」聽起來更像是根本不起作用? – niko