阅读量: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
命令)。将输出结果打印到控制台并打印命令的退出码。
请根据实际情况替换host
、username
和password
参数以及命令。确保远程服务器上已经安装了SSH服务,并且可以使用提供的用户名和密码进行访问。