要实现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服务,并且可以使用提供的用户名和密码进行访问。