gpt4 book ai didi

java - 在内存/嵌入式 SFTP 服务器中,用于在 Java 中使用私钥身份验证进行测试

转载 作者:行者123 更新时间:2023-11-30 08:39:08 26 4
gpt4 key购买 nike

场景是我需要为执行 SFTP 文件传输的应用程序编写测试,并且我需要一个具有私钥身份验证实现的内存/嵌入式 SFTP 服务器,以便我可以测试该文件传输使用带有私钥 (.pem) 文件身份验证的嵌入式/内存服务器运行良好。

我翻遍了互联网,最接近的是 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;
}
});

我试图找到一种实现私钥身份验证的方法,但似乎只有一个身份 validator ,但它是一个公钥身份 validator ,如下所示:

public void setPublickeyAuthenticator(PublickeyAuthenticator publickeyAuthenticator) {
this.publickeyAuthenticator = publickeyAuthenticator;
}

有没有办法用 Apache Mina 实现私钥 validator ?或者,如果不可能的话,还有其他模拟 SFTP 服务器可以用于我的测试场景吗?

最佳答案

您实际上是在寻找一个公钥 validator

客户端/用户使用其公钥进行身份验证。服务器永远看不到私钥。


因此,您实现了 PublickeyAuthenticator 接口(interface)来检查 authenticate 方法的 PublicKey key 参数是否与您的 key 对的公共(public)部分相匹配正在您的客户端中使用以进行身份​​验证。

您可以从使用 OpenSSH .ssh/authorized_keysAuthorizedKeysAuthenticator 实现开始-类似配置文件。

关于java - 在内存/嵌入式 SFTP 服务器中,用于在 Java 中使用私钥身份验证进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36280041/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com