Сценарий заключается в том, что мне нужно написать тесты для приложения, которое передает SFTP-файлы, и мне нужен в встроенном SFTP-сервере с встроенным SFTP-сервером, чтобы я мог проверить, что передача файлов выполняется нормально со встроенным/на сервере памяти с аутентификацией файла с приватным ключом (.pem).В памяти/встроенном SFTP-сервере для проверки с помощью проверки подлинности с использованием частного ключа в Java
я прострелил через кишки интернета ближе я пришел был Apache Mina Server as discussed in this S.O. question
В настоящее время я использую проверку подлинность имени пользователя и пароля, как показано ниже:
SshServer sshd = SshServer.setUpDefaultServer();
sshd.setPort(22999);
sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider());
sshd.setPasswordAuthenticator(new PasswordAuthenticator() {
public boolean authenticate(String username, String password,
ServerSession session) {
// TODO Auto-generated method stub
return true;
}
});
Я пытался найти способ реализации частных но, похоже, существует только один аутентификатор, но это аутентификатор открытого ключа, как показано ниже:
public void setPublickeyAuthenticator(PublickeyAuthenticator publickeyAuthenticator) {
this.publickeyAuthenticator = publickeyAuthenticator;
}
Is th как способ реализовать аутентификатор частного ключа с Apache Mina? или если это невозможно, есть ли какой-нибудь другой mock-сервер SFTP, который я мог бы использовать для своего сценария тестирования?
, так что вы имеете в виду, что я мог бы использовать логин jsch с «закрытым ключом», и если я добавлю соответствующий открытый ключ к известным ключам сервера, тогда это будет трюк? – Anirudh
клиент аутентифицируется с помощью «закрытого ключа», а не с открытым ключом. IMO – Anirudh
. На противоположной стороне аутентификации просматривается только открытый ключ. Таким образом, на стороне клиента вы видите общедоступную часть пары ключей сервера (известный как ключ хоста). На стороне сервера сервер видит только открытую часть пары ключей пользователя. Конечно, у пользователя должен быть и закрытый ключ, но вы не можете проверить закрытый ключ на сервере, так как закрытый ключ не отправляется на сервер (поэтому он частный). –