1

Jsch、private.ppk ベースのログイン。

現在、sshログインするための次のコードがありますが、キーが提供されないために例外が発生します。

以下は私が得ている私のエラーです

om.jcraft.jsch.JSchException: Auth cancel


 JSch jsch = new JSch();
        Session session = jsch.getSession(user_name, host, 22);


        UserInfo ui = new SSHUserInfo(password, true);
        session.setUserInfo(ui);
        //connect to remove server
        session.connect();

        //sudo login bamboo
        if (null != session && session.isConnected()) {
            session.disconnect();
        }
4

2 に答える 2

2
JSch jsch = new JSch();

// Here privateKey is a file path like "/home/me/.ssh/secret_rsa "
// passphrase is passed as a string like "mysecr"
jsch.addIdentity(privateKey, passphrase);

session = jsch.getSession(user, host, port);
session.setConfig("StrictHostKeyChecking", "no"); 
// Or yes, up to you. If yes, JSch locks to the server identity so it cannot
// be swapped by another with the same IP.

session.connect();
channel = session.openChannel("shell");
out = channel.getOutputStream();
channel.connect();
于 2013-01-08T20:20:28.717 に答える
0

ファイルの拡張子「.ppk」は、Putty の秘密鍵を使用しようとしていることを意味していると思います。

JSch は 0.1.49 から Putty の秘密鍵をサポートしており、鍵が暗号化されている場合は、「Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files」[1] を環境にインストールする必要があります。

そして、通常 Pageant を使用している場合は、jsch-agent-proxy[2] を試すことに興味があるかもしれません。

[1] http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
[2] https://github.com/ymnk/jsch-agent-proxy
于 2013-01-09T08:30:30.280 に答える