在ec2实例上运行sudo命令

Jai*_*hah 5 ssh sudo jsch amazon-ec2 pty

我无法在我的ec2客户端上运行"sudo su",我通过java程序进入客户端并通过程序运行命令.我可以运行像"ls"和"ifconfig"这样的命令.

我收到一条错误说"sudo:抱歉,你必须有一个tty才能运行sudo".

我如何运行命令,我正在使用Jsch for ssh到我的ec2实例.

ymn*_*mnk 6

你可以使用-S选项来执行没有伪tty的"sudo"和JSch sudo.

有关完整示例,请参阅JSch网站上的Sudo.java.

(我是JSch的作者.)


bdo*_*lan 4

看起来默认情况下 Jsch 不会为远程会话分配伪 tty - 这可能会破坏一些期望以交互方式运行的程序。看起来您也许可以使用ChannelExec.setPty函数来请求 pty - 但我没有使用过 Jsch,也无法自己测试这一点。