Search in sources :

Example 1 with RequiredServerKeyVerifier

use of org.apache.sshd.client.keyverifier.RequiredServerKeyVerifier in project karaf by apache.

the class SshKeyFormatTest method usePemKey.

@Test
public void usePemKey() throws Exception {
    SshClient client = SshClient.setUpDefaultClient();
    URL testPemURL = Resources.getResource(SshKeyFormatTest.class, "test.pem");
    ByteSource source = Resources.asByteSource(testPemURL);
    PKCS8Key pkcs8 = new PKCS8Key(source.openStream(), null);
    String sshPort = getSshPort();
    client.setServerKeyVerifier(new RequiredServerKeyVerifier(pkcs8.getPublicKey()));
    client.start();
    ConnectFuture future = client.connect("karaf", "localhost", Integer.parseInt(sshPort));
    future.await();
    ClientSession session = future.getSession();
    Set<ClientSessionEvent> ret = EnumSet.of(ClientSessionEvent.WAIT_AUTH);
    while (ret.contains(ClientSessionEvent.WAIT_AUTH)) {
        session.addPasswordIdentity("karaf");
        session.auth().verify();
        ret = session.waitFor(EnumSet.of(ClientSessionEvent.WAIT_AUTH, ClientSessionEvent.CLOSED, ClientSessionEvent.AUTHED), 0);
    }
    if (ret.contains(ClientSessionEvent.CLOSED)) {
        throw new Exception("Could not open SSH channel");
    }
    session.close(true);
}
Also used : PKCS8Key(org.apache.commons.ssl.PKCS8Key) ClientSessionEvent(org.apache.sshd.client.session.ClientSession.ClientSessionEvent) SshClient(org.apache.sshd.client.SshClient) RequiredServerKeyVerifier(org.apache.sshd.client.keyverifier.RequiredServerKeyVerifier) ClientSession(org.apache.sshd.client.session.ClientSession) ByteSource(com.google.common.io.ByteSource) ConnectFuture(org.apache.sshd.client.future.ConnectFuture) URL(java.net.URL) Test(org.junit.Test)

Aggregations

ByteSource (com.google.common.io.ByteSource)1 URL (java.net.URL)1 PKCS8Key (org.apache.commons.ssl.PKCS8Key)1 SshClient (org.apache.sshd.client.SshClient)1 ConnectFuture (org.apache.sshd.client.future.ConnectFuture)1 RequiredServerKeyVerifier (org.apache.sshd.client.keyverifier.RequiredServerKeyVerifier)1 ClientSession (org.apache.sshd.client.session.ClientSession)1 ClientSessionEvent (org.apache.sshd.client.session.ClientSession.ClientSessionEvent)1 Test (org.junit.Test)1