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 的指令時,可以試看看囉 ! ....



[+] Ubuntu 指令新手會用到的35個技法 - 這是以阿舍的使用經驗編寫出來的電子書,三天內應該就看的完,學的起來哩 ! 有空就參考一下囉 ! ... ^^=

關於阿舍

好文不藏私,請多分享囉!! ^^=



沒有留言 :

張貼留言

如果留言後,發現留言不見了,這通常是因為 Goolge 把它認為是垃圾留言了,請用信件通知阿舍調整 ( ayubiz@gmail.com )。謝謝 !