我想通过SSH在我的远程Fedora服务器上自动执行根脚本操作,而无需在服务器上安装脚本。为此,我尝试使用Bash的内联脚本表示法。这在Ubuntu中运行良好,但我在Fedora上遇到了奇怪的错误。
e.g。
#!/bin/bash
ssh -t myuser@myserver <<EOI
su -
ls /root
exit
exit
EOI
这给了我输出:
standard in must be a tty
ls: cannot open directory /root: Permission denied
我也试过了:
#!/bin/bash
ssh -t myuser@myserver <<EOI
sudo ls /root
exit
EOI
但是这给了我:
sudo: no tty present and no askpass program specified
如果我手动ssh并运行这些命令,它们运行正常,因为myuser在sudoers文件中。我用Google搜索了这些错误并尝试了一些修复,但到目前为止还没有任何工作。我该如何解决这个问题?
答案 0 :(得分:1)
您似乎被提示输入密码,但无法输入密码。这里有一些应该有用的东西。
尝试额外的-t选项:ssh -tt myuser@myserver <<EOI
这也是一个方便的技巧,无需启用root密码即可以root身份登录:sudo su -
作为最后的手段,您可以使用visudo
将用户设置为sudo而无需密码。您可能会看到一些类似的评论来帮助您:
# 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