JavaでSSHリモートアクセスを実現する方法

JSchライブラリを使用してSSHリモートアクセスを実装できます。JSchはJava Secure Channelの略で、SSH2プロトコルのJava実装です。

SSHリモートアクセスをJSchで実現する簡単なサンプルコードを以下に示します:

import com.jcraft.jsch.*;
public class SSHExample {
public static void main(String[] args) {
String host = "your_host";
String username = "your_username";
String password = "your_password";
try {
JSch jsch = new JSch();
// 创建SSH会话
Session session = jsch.getSession(username, host, 22);
session.setPassword(password);
// 关闭主机密钥检查,避免连接时出现UnknownHostKey异常
session.setConfig("StrictHostKeyChecking", "no");
// 连接SSH服务器
session.connect();
// 执行远程命令
ChannelExec channel = (ChannelExec) session.openChannel("exec");
channel.setCommand("ls -l");
channel.connect();
// 读取命令输出
byte[] buffer = new byte[1024];
while (channel.getExitStatus() == -1) {
while (channel.getInputStream().available() > 0) {
int len = channel.getInputStream().read(buffer);
System.out.print(new String(buffer, 0, len));
}
}
// 关闭SSH会话
channel.disconnect();
session.disconnect();
} catch (JSchException | java.io.IOException e) {
e.printStackTrace();
}
}
}

このコードでは、JSchライブラリを使用してSSHセッションが作成され、ユーザー名とパスワードを使用してリモートホストに接続します。その後、execチャネルを開いてリモートコマンド(ここではls -lコマンドを実行)を実行し、コマンド出力を取得します。

なお、JSch を使った SSH リモートアクセスを行う場合は、プロジェクトに JSch ライブラリの依存関係を追加する必要があります。プロジェクトの Maven 設定ファイル (pom.xml) に次のコードを追加することで、JSch ライブラリの依存関係を追加できます。

<dependencies>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.54</version>
</dependency>
</dependencies>

上記のコード内の your_host, your_username, your_password を、実際の遠隔ホストアドレス、ユーザー名、パスワードに置き換えてください。

bannerAds