@Override public AuthFuture authenticate(final ClientSession session) throws IOException { session.addPasswordIdentity(password); return session.auth(); } }
@Override public AuthFuture authenticate(final ClientSession session) throws IOException { session.addPasswordIdentity(password); return session.auth(); } }
@Override protected void connectInternal() throws Exception { log.info("Connecting to server {}:{}", configuration.getHost(), configuration.getPort()); client = SshClient.setUpDefaultClient(); setupAgent(configuration.getUsername(), configuration.getKeyFile(), client); client.start(); connect(client); if (configuration.getPassword() != null) { session.addPasswordIdentity(configuration.getPassword()); } session.auth().verify(); }
private static ClientSession connect(SshClient client, final String user, KeyPair keyPair, final String ip, final int port) throws IOException, InterruptedException { ClientSession session = client.connect(user, ip, port).await().getSession(); int authState = ClientSession.WAIT_AUTH; while ((authState & ClientSession.WAIT_AUTH) != 0) { session.addPublicKeyIdentity(keyPair); log.info("Authenticating to " + user + "@" + ip); AuthFuture authFuture = session.auth(); authFuture.addListener(new SshFutureListener<AuthFuture>() { @Override public void operationComplete(AuthFuture authFuture) { log.info("Authentication completed with " + (authFuture.isSuccess() ? "success" : "failure") + " for " + user + "@" + ip + ":" + port); } }); authState = session.waitFor(ClientSession.WAIT_AUTH | ClientSession.CLOSED | ClientSession.AUTHED, 0); } if ((authState & ClientSession.CLOSED) != 0) { throw new IOException("Authentication failed for " + user + "@" + ip); } return session; }
clientSession.addPublicKeyIdentity(keyPair); AuthFuture authFuture = clientSession.auth(); authFuture.await(AUTH_TIMEOUT); if (!authFuture.isSuccess()) {