公開鍵とパスフレーズを使用してサーバーに接続するにはどうすればよいですか (私は公開鍵を持っており、パスフレーズを知っています。com.sshtools.j2ssh ライブラリを使用していますが、パスフレーズを設定するオプションが表示されません。問題は、私は公開鍵を持っていますが、サーバーはパスフレーズを要求し続けます。
ありがとう。ロン。
公開鍵とパスフレーズを使用してサーバーに接続するにはどうすればよいですか (私は公開鍵を持っており、パスフレーズを知っています。com.sshtools.j2ssh ライブラリを使用していますが、パスフレーズを設定するオプションが表示されません。問題は、私は公開鍵を持っていますが、サーバーはパスフレーズを要求し続けます。
ありがとう。ロン。
SshPrivateKeyFileをインスタンス化すると、そのオブジェクトでtoPrivateKeyを呼び出して、SshPrivateKeyオブジェクトを作成できます。そのtoPrivateKeyメソッドは、パスフレーズである文字列を取ります。パスフレーズがない場合は、空の文字列を渡します(または、nullも機能すると思います)。これがサンプルです。
PublicKeyAuthenticationClient sshClient = new PublicKeyAuthenticationClient();
SshPrivateKeyFile sshPrivKeyFile = SshPrivateKeyFile.parse(new File(keyFile));
SshPrivateKey sshPrivKey = sshPrivKeyFile.toPrivateKey("passphrase");
sshClient.setKey(sshPrivKey);
復号化/暗号化の方法については、j2ssh の API を確認してください。通常、これらは認証のために送信するために使用されます。
そのサーバーは正しく構成されていますか? key auth に設定されている場合、キーストアのパスワード以外のパスワードは必要ありません。パテなどで接続してみてください。また、いくつかのプロジェクトで使用したGanymed SSHを試すこともお勧めしますが、トンネルや scp などの非常に高度な機能を使用しても問題はありませんでした。