在ec2实例上运行sudo命令

时间:2011-12-09 05:55:19

标签: ssh amazon-ec2 sudo jsch pty

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

我收到一条错误消息“sudo:抱歉,你必须有一个tty来运行sudo”。

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

2 个答案:

答案 0 :(得分:6)

使用-S sudo选项,您可以使用JSch执行没有伪tty的“sudo”。

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

(我是JSch的作者。)

答案 1 :(得分:4)

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