我正在尝试使用基于公钥/私钥的身份验证通过 SSH 执行远程查询。在本地主机和远程服务器之间共享公钥后,以下命令可以正常工作,并在 bash shell 上将所需的输出作为字符串提供给我。
echo 123456 12@13:14 ABCD abc1234 | ssh -T user@abc.xyz.com
如何使用 JSCH 或 SSHJ 或任何其他类似库通过 JAVA 实现相同的目标
这是我迄今为止使用 SSHJ 尝试过的,但它对我不起作用(连接成功但没有结果)
public static void main(String... args)throws IOException {
final SSHClient ssh = new SSHClient();
ssh.loadKnownHosts();
ssh.connect("abc.xyz.com");
try {
ssh.authPublickey("user");
final Session session = ssh.startSession();
try {
final Command cmd = session.exec("123456 12@13:14 ABCD abc1234");
System.out.println(IOUtils.readFully(cmd.getInputStream()).toString());
cmd.join(5, TimeUnit.SECONDS);
System.out.println("\n** exit status: " + cmd.getExitStatus());
} finally {
session.close();
}
} finally {
ssh.disconnect();
ssh.close();
}
}