EC2 クライアントで「sudo su」を実行できません。Java プログラムを介してクライアントに ssh し、プログラムを介してコマンドを実行します。ただし、「ls」や「ifconfig」などのコマンドは実行できます。
「sudo: 申し訳ありませんが、sudo を実行するには tty が必要です」というエラーが表示されます。
コマンドを実行するにはどうすればよいですか。ec2 インスタンスへの ssh に Jsch を使用しています。
EC2 クライアントで「sudo su」を実行できません。Java プログラムを介してクライアントに ssh し、プログラムを介してコマンドを実行します。ただし、「ls」や「ifconfig」などのコマンドは実行できます。
「sudo: 申し訳ありませんが、sudo を実行するには tty が必要です」というエラーが表示されます。
コマンドを実行するにはどうすればよいですか。ec2 インスタンスへの ssh に Jsch を使用しています。
-S
オプション toを使用すると、JSch で疑似 tty なしで「sudo」を実行できますsudo
。
完全な例については、JSch Web サイトのSudo.javaを参照してください。
(私は JSch の著者です。)
デフォルトでは、Jsch はリモート セッションに疑似 tty を割り当てないように見えます。これにより、対話的に実行されることを期待する一部のプログラムが壊れる可能性があります。ChannelExec.setPty関数を使用して pty を要求できるように見えますが、私は Jsch を使用したことがなく、これを自分でテストすることはできません。