我是Linux Shell Scripting的新手。我需要執行一個shell腳本來獲取用戶名,密碼,主機名,要執行的命令作爲1,2,3,4參數分別。 我使用ssh,但它提示輸入密碼。該腳本的主題是從遠程服務器執行命令。密碼安全問題不是問題。 主要問題是我不能提示輸入密碼。請幫我解決這個問題。在命令中提供密碼並執行
echo username = $1
echo Password = $2
echo Host-Name = $3
echo Command to Be executed = $4
set -x
expect -c "spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no [email protected]$3 $4; expect \"*assword:*\"; send "$2\r";expect eof;"
echo "==============="
我的輸出:
username = root
Password = [email protected]
Host-Name = host-name
Command to Be executed = ls
spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no [email protected] ls
[email protected]===============
是沒有得到顯示我的命令即LS輸出。
後使用set -x之前預計的命令:
輸出:
username = root
Password = [email protected]
Host-Name = host-name
Command to Be executed = ls
+ expect -c 'spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no [email protected] ls; expect "*assword:*"; send [email protected];expect eof;'
spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no [email protected] ls
[email protected]+ echo
===============
===============
++ printf '\033]0;%[email protected]%s:%s\007' root RHEL5 '~'
您可以使用密碼以下(基於密鑰的)身份驗證。或者你可以試着'expect'來提供密碼。 –
如何處理expect命令?我已更新我的問題,請提出建議 – user3318138
任何建議。 – user3318138