簡體   English   中英

如果提供的密碼正確,bash/expect 腳本將繼續

[英]bash/expect script that continues if password provided is correct

我不習慣在 bash 腳本中使用 expect,無論如何我想要實現的是一個 bash 腳本,當詢問密碼時,它將檢查連接是否正確到遠程機器,然后如果正確執行遠程執行一些命令,然后退出

直到現在我設法將期望放在檢查的變量中(我知道這很丑陋):

SCRIPT1=$(expect -c "

spawn ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $USER@$HOST

expect \"assword:\"
send \"$PASS\r\"
expect \"\\\\$\"
send \"show \/SP\/clock\r\"
expect -re \"$USER.*\"
send \"exit\r\"
")

echo "$SCRIPT1"

有沒有辦法在 bash 腳本中實現密碼檢查?

編輯:在這種情況下,公鑰身份驗證不是一個選項,抱歉

我找到了答案,事實是,一旦狀態正常並且期望“正確轉義”,它就會起作用(不確定它將來是否對某人有用)......

echo "Enter the Remote Password:"
read -s PASS
echo "Verifying password..."
CHECK=$(expect -c "

spawn ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no ${u}@${H}

expect \"assword:\"
send \"$PASS\r\"
expect {
        \"\\\\$\" {exit 0}
        \"assword:\" { exit 1}
}
expect -re \"${u}.*\"
send \"exit\r\"
")


if [ $? == 1 ]
then
echo "Password validation failed. Please execute again with correct password for the ILOM and user selected. Exiting..."
exit
else
echo "Password validation correct..."

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM