Как использовать 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);
Я не уверен, если это решит вашу проблему, но я думаю, что это может быть.