公開鍵/秘密鍵ベースの認証を使用して、SSH 経由でリモート クエリを実行しようとしています。次のコマンドは正常に機能し、ローカル ホストとリモート サーバー間で公開鍵を共有した後、必要な出力を bash シェルの文字列として提供します。
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();
}
}