java 에서 ssh 이용 Posted on 2021-01-06 | In Java | ssh를 이용하여 접속해야하는 경우가 있다. jsch 라는 라이브러리를 사용하여 접속한다. pom.xml 12345<dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.55</version> </dependency> web.xml 123<listener> <listener-class>com.example.ssh.utils.SSHContextListener</listener-class> </listener> 1234567891011121314151617181920212223242526272829303132package com.example.ssh.utils; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; public class SSHConnector { private final static String remoteHost = "192.168.0.195"; private final static String user = "fourms"; private final static String password = "fourms"; private final static int port = 22; private Session session; public void closeSSH() { session.disconnect(); } public SSHConnector() { try { JSch jSch = new JSch(); session = jSch.getSession(user, remoteHost, port); session.setPassword(password); java.util.Properties config = new java.util.Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config); session.connect(); session.setPortForwardingL(port, remoteHost, 1521); System.out.println(" session.connect();"); } catch (Exception e) { e.printStackTrace(); } } } 12345678910111213141516171819202122232425package com.example.ssh.utils; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class SSHContextListener implements ServletContextListener { private SSHConnector sshConnector; @Override public void contextInitialized(ServletContextEvent sce) { System.out.println("init start!"); try { sshConnector = new SSHConnector(); System.out.println("init destory!"); }catch(Exception e) { e.printStackTrace(); } } @Override public void contextDestroyed(ServletContextEvent sce) { System.out.println("init destory!"); sshConnector.closeSSH(); } }