我想通过 JAVA API 连接到 Amazon EC2 终端并执行 sudo 操作。我最终使用了 SSHJ 库,因为我发现它的界面非常简单易用。好消息是我什至可以通过这个库执行 sudo 操作。这是一些示例代码:
// 开始一个新的会话 session = sshClient.startSession(); session.allocatePTY("vt220", 80,24,0,0,Collections.emptyMap());
Command cmd = null;
String response = null;
// your allocating a new session there
try (Session session = sshClient.startSession()) {
cmd = session.exec("sudo service riak start");
response = IOUtils.readFully(cmd.getInputStream()).toString();
cmd.join(timeout, timeUnit);
} finally {
if (cmd != null)
cmd.close();
}
但是,我收到的回复包含控制字符,并希望将它们转换为纯文本。
Starting riak: [60G[[0;32m OK [0;39