我不能在我的ec2客户端上运行“sudo su”,我通过java程序ssh进入客户端并通过程序运行命令。 虽然我可以运行诸如“ls”和“ifconfig”之类的命令。在ec2实例上运行sudo命令
我收到一个错误,提示“sudo:对不起,您必须有一个tty才能运行sudo”。
我该如何运行命令,我使用jsch作为ssh到我的ec2实例。
我不能在我的ec2客户端上运行“sudo su”,我通过java程序ssh进入客户端并通过程序运行命令。 虽然我可以运行诸如“ls”和“ifconfig”之类的命令。在ec2实例上运行sudo命令
我收到一个错误,提示“sudo:对不起,您必须有一个tty才能运行sudo”。
我该如何运行命令,我使用jsch作为ssh到我的ec2实例。
看起来像默认情况下Jsch不会为远程会话分配一个伪tty - 这可能会破坏一些希望以交互方式运行的程序。它看起来像你可能能够使用ChannelExec.setPty函数来请求一个pty - 但我没有与Jsch一起工作,不能自己测试这个。
我会试试! –
它的工作,谢谢你! –
请注意:我为JSch创建了一些Javadoc,您可能想要链接http://epaul.github.com/jsch-documentation/simple.javadoc/com/jcraft/jsch/ChannelExec.html#setPty(boolean) 。 –