2011-01-20 118 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

相关问题