要實現SSH遠程訪問,需要使用Java的SSH庫。以下是使用JSch庫實現SSH遠程訪問的示例代碼:
首先,需要在項目中引入JSch庫的依賴。如果使用Maven,可以在pom.xml文件中添加以下依賴:
<dependencies>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>
</dependencies>
然后,可以使用以下代碼實現SSH遠程訪問:
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
public class SSHExample {
public static void main(String[] args) {
String host = "hostname";
String username = "username";
String password = "password";
int port = 22;
try {
JSch jsch = new JSch();
Session session = jsch.getSession(username, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
ChannelExec channel = (ChannelExec) session.openChannel("exec");
channel.setCommand("ls -l");
channel.connect();
java.io.InputStream in = channel.getInputStream();
byte[] tmp = new byte[1024];
while (true) {
while (in.available() > 0) {
int i = in.read(tmp, 0, 1024);
if (i < 0) {
break;
}
System.out.print(new String(tmp, 0, i));
}
if (channel.isClosed()) {
if (in.available() > 0) {
continue;
}
System.out.println("Exit Code: " + channel.getExitStatus());
break;
}
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
}
channel.disconnect();
session.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}
上述代碼中,通過JSch庫創建一個SSH會話,并使用會話執行命令(此處示例為執行ls -l
命令)。將輸出結果打印到控制臺并打印命令的退出碼。
請根據實際情況替換host
、username
和password
參數以及命令。確保遠程服務器上已經安裝了SSH服務,并且可以使用提供的用戶名和密碼進行訪問。