2015-02-12

Ubuntu 用 SSH 遠端執行 sudo 指令

阿舍最近在 VPS 上弄了一個網站,目前還在開發和測試階段,所以,常常需要把程式更新上去,阿舍就用 scp 的方式來把程式送到 VPS 上的家目錄下的某個資料夾,之後,再把它用 script 搬到底 /var/www 資料夾下,當阿舍用 SSH 來遠端執行這支 script 的時候,就會遇到「sudo: no tty present and no askpass program specified」的錯誤訊息哩 !

ssh 直接用 sudo 指令會有問題哩 !
由於阿舍的 script 要執行的是將檔案從家目錄搬到 /var/www 資料夾,因此,就要透過 sudo 指令來執行,但是,阿舍是用下面這個指令方式來執行這支 script 的,所以,那個要阿舍輸入密碼的訊息就出不來了,只出來了「sudo: no tty present and no askpass program specified」訊息 ...

$ ssh ayu@arthurtoday.com "./cpatd"       # sudo 指令包含在 script 裡
「sudo: no tty present and no askpass program specified」

後來,阿舍去查了一下 SSH 的 ManPage 後才知道,原來,是要加上個 -t 選項,這樣才會把遠端主機上的輸出和輸入導到阿舍的電腦上,所以,阿舍改成下面這個樣子後,就會跳出要阿舍輸入密碼的訊息,然後,阿舍輸入完就可以順利執行囉 !

$ ssh -t ayu@arthurtoday.com "./cpatd"

如果需要用 SSH 指令來遠端執行含有 sudo 的指令時,可以試看看囉 ! ....


推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

沒有留言 :

張貼留言

歡迎留言提問和討論 .... 😁