可以使用JSch在java中创建SSH连接。如果有了解连接SSH服务器上的远程数据库的程序则应该有助于学习本文中的内容。 本文将演示如何连接启用SSH的服务器并执行shell命令。使用JSch从java程序连接到远程ssh服务器。
从它的官方网站下载JSch jar。还可以使用maven依赖项获取JSch jar。
<dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.53</version> </dependency>
下面是一个简单的JSch示例程序。
import java.io.InputStream; import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelExec; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; public class JSchExampleSSHConnection { /** * JSch Example Tutorial * Java SSH Connection Program */ public static void main(String[] args) { String host="ssh.journaldev.com"; String user="sshuser"; String password="sshpwd"; String command1="ls -ltr"; try{ java.util.Properties config = new java.util.Properties(); config.put("StrictHostKeyChecking", "no"); JSch jsch = new JSch(); Session session=jsch.getSession(user, host, 22); session.setPassword(password); session.setConfig(config); session.connect(); System.out.println("Connected"); Channel channel=session.openChannel("exec"); ((ChannelExec)channel).setCommand(command1); channel.setInputStream(null); ((ChannelExec)channel).setErrStream(System.err); InputStream in=channel.getInputStream(); channel.connect(); 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()){ System.out.println("exit-status: "+channel.getExitStatus()); break; } try{Thread.sleep(1000);}catch(Exception ee){} } channel.disconnect(); session.disconnect(); System.out.println("DONE"); }catch(Exception e){ e.printStackTrace(); } } }
如果您在执行JSch示例程序时遇到任何问题,请留言。 这是JSch在java程序中创建SSH连接的非常简单的例子。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264070.html