java怎么实现ssh远程访问

avatar
作者
猴君
阅读量:1

要实现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命令)。将输出结果打印到控制台并打印命令的退出码。

请根据实际情况替换hostusernamepassword参数以及命令。确保远程服务器上已经安装了SSH服务,并且可以使用提供的用户名和密码进行访问。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!