Как использовать sshtools SftpClient с парольной фразой?

Я пытаюсь использовать j2ssh SshClient без успеха.

Я пытаюсь открыть соединение, используя закрытый ключ RSA + пароль. Я нашел кое-что, в чем я не уверен, это подход записи:

Properties properties = new Properties();
properties.put("Passphrase", "xyz");
properties.put("PrivateKey", "sftp_rsa");
properties.put("Username", "user");
properties.put("StrictHostKeyChecking", "no");
publicKeyAuthenticationClient.setPersistableProperties(properties);
int result = ssh.authenticate(publicKeyAuthenticationClient);

Я использую метод setPersistableProperties для загрузки объекта Properties, который содержит соответствующие данные. Я установил для PrivateKey имя файла, а для Passphrase - соответствующий пароль.

Что-то еще, я получаю подсказку:

The host hostname.host,1.1.1.1 is currently unknown to the system
The host key fingerprint is: 100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Always option disabled, host file is not writeable
Do you want to allow this host key? [Yes|No]

который я пытаюсь удалить с помощью свойства StrictHostKeyChecking, установленного на "нет". (Без успеха конечно)

Любая идея??

Спасибо!

1 ответ

Метод SshClient.connect принимает объект HostKeyVerification в качестве второго аргумента, одна из реализаций - IgnoreHostKeyVerification, вы можете использовать его следующим образом:

SshConnectionProperties props = new SshConnectionProperties();
props .setHost(server);
props .setPort(port);
sshClient.connect(props , new IgnoreHostKeyVerification());

//this is your code
Properties properties = new Properties();
properties.put("Passphrase", "xyz");
properties.put("PrivateKey", "sftp_rsa");
properties.put("Username", "user");
properties.put("StrictHostKeyChecking", "no");
publicKeyAuthenticationClient.setPersistableProperties(properties);
int result = sshClient.authenticate(publicKeyAuthenticationClient);

Я не уверен, если это решит вашу проблему, но я думаю, что это может быть.

Другие вопросы по тегам