package io.termd.core.ssh; import com.jcraft.jsch.ChannelShell; import com.jcraft.jsch.JSch; import com.jcraft.jsch.JSchException; import com.jcraft.jsch.Session; import com.jcraft.jsch.UserInfo; /** * @author <a href="mailto:julien@julienviet.com">Julien Viet</a> */ public class AsyncAuthTest extends AsyncAuthTestBase { protected boolean authenticate() throws Exception { JSch jsch = new JSch(); Session session; ChannelShell channel; session = jsch.getSession("whatever", "localhost", 5000); session.setPassword("whocares"); session.setUserInfo(new UserInfo() { @Override public String getPassphrase() { return null; } @Override public String getPassword() { return null; } @Override public boolean promptPassword(String s) { return false; } @Override public boolean promptPassphrase(String s) { return false; } @Override public boolean promptYesNo(String s) { return true; } // Accept all server keys @Override public void showMessage(String s) { } }); try { session.connect(); } catch (JSchException e) { if (e.getMessage().equals("Auth cancel")) { return false; } else { throw e; } } channel = (ChannelShell) session.openChannel("shell"); channel.connect(); if (channel != null) { try { channel.disconnect(); } catch (Exception ignore) {} } if (session != null) { try { session.disconnect(); } catch (Exception ignore) {} } return true; } }