我无法在我的ec2客户端上运行“sudo su”命令,我通过一个Java程序ssh进入客户端并通过程序运行该命令。虽然我可以运行“ls”和“ifconfig”等命令。
我收到一个错误提示:“sudo: sorry, you must have a tty to run sudo”。
我该如何运行这个命令?我使用Jsch连接到我的ec2实例。
我无法在我的ec2客户端上运行“sudo su”命令,我通过一个Java程序ssh进入客户端并通过程序运行该命令。虽然我可以运行“ls”和“ifconfig”等命令。
我收到一个错误提示:“sudo: sorry, you must have a tty to run sudo”。
我该如何运行这个命令?我使用Jsch连接到我的ec2实例。
看起来默认情况下,Jsch不为远程会话分配一个伪终端 - 这可能会破坏一些期望交互式运行的程序。 看起来你可以使用ChannelExec.setPty函数请求一个pty,但我没有使用过Jsch,无法自己测试。