ssh執行非互動式命令

2021-06-22 19:44:19 字數 546 閱讀 3077

如果你想用指令碼自動化登入到某台機子上,然後在上邊執行個命令,怎麼辦呢?

可以使用ssh的非互動式命令

ssh [email protected] "/home/hczhang/bin/build.sh"

這裡可以用expect模擬鍵盤輸入將密碼輸入,也可以用無密碼登入,具體就是將自己的公鑰放在對端的authorized_keys裡,登入的時候就不用輸密碼了,就是建立兩台機子之間的信任關係,這裡不多講了。

那麼如果你想執行sudo命令怎麼辦呢?比如:

ssh [email protected] "sudo /home/hczhang/bin/build.sh"

會出現 not present a tty to run sudo,

我們可以用-t選項模擬乙個tty。

ssh -t [email protected] "sudo /home/hczhang/bin/build.sh"

好了,就到這裡了。

原文:hongchangfirst

hongchangfirst的主頁:

ssh非互動式密碼輸入

ssh登陸不能在命令列中指定密碼。sshpass的出現,解決了這一問題。sshpass用於非互動ssh的密碼驗證,一般用在sh指令碼中,無須再次輸入密碼。它允許你用 p 引數指定明文密碼,然後直接登入遠端伺服器,它支援密碼從命令列 檔案 環境變數中讀取。其預設沒有安裝,需要手動安裝,方法如下 tar...

互動式 非互動式,登入式 非登入式Shell

互動式shell和非互動式shell 互動式模式 在終端上執行,shell等待你的輸入,並且立即執行你提交的命令。這種模式被稱作互動式是因為shell與使用者進行互動。這種模式也是大多數使用者非常熟悉的 登入 執行一些命令 退出。當你退出後,shell也終止了。非互動式模式 以shell scrip...

互動式 vs 非互動式 登入式 vs 非登入式

方式 區別區分方法 互動式與使用者互動 echo 返回值有i 非互動式 與script互動 echo 返回值沒有i 方式 登入區別 退出區別 區分方法 登入式需要username pwd logout exit echo 0 返回是 bash 非登入式 無需要username pwd exit ec...