2011-01-20 152 views
1

我想通過SSH在遠程Fedora服務器上自動執行根腳本操作,而無需在服務器上安裝腳本。爲此,我試圖使用Bash的內聯腳本符號。這在Ubuntu中正常工作,但是我在Fedora上遇到了一些奇怪的錯誤。在Fedora上運行遠程根腳本

例如

#!/bin/bash 
ssh -t [email protected] <<EOI 

su - 
ls /root 
exit 

exit 
EOI 

這使我的輸出:

standard in must be a tty 
ls: cannot open directory /root: Permission denied 

我也試過:

#!/bin/bash 
ssh -t [email protected] <<EOI 

sudo ls /root 

exit 
EOI 

,但是這給了我:

sudo: no tty present and no askpass program specified 

如果我手動SSH方式並運行這些命令,它們自myuser在中運行良好sudoers文件。我谷歌搜索這些錯誤,並嘗試了一些修復,但沒有任何工作到目前爲止。我該如何解決這個問題?

回答

1

看起來你被提示輸入密碼,但沒有辦法輸入密碼。以下是一些應該幫助的事情。

嘗試一個額外的-t選項:ssh -tt [email protected] <<EOI

而且這是一個方便的技巧以root身份登錄,而root密碼被啓用:sudo su -

作爲最後的手段,你可以設置你的用戶須藤沒有使用密碼visudo。你可能會看到一些類似的評論來幫助你:

# Uncomment to allow members of group sudo to not need a password 
# (Note that later entries override this, so you might need to move 
# it further down) 
# %sudo ALL=NOPASSWD: ALL 
+0

我已經嘗試了-tt技巧。它不起作用。它確實會導致我提示輸入密碼,但我的密碼是純文本的。即使我輸入,按Enter鍵時也沒有任何反應。 – Cerin 2011-01-20 19:31:01