方案是,我需要为执行SFTP文件传输的应用程序编写测试,并且需要具有私钥身份验证实现的内存/嵌入式SFTP服务器,以便可以测试文件传输与嵌入式/内存服务器正常运行。私钥(.pem)文件身份验证。
正如本次SO问题中所讨论的,我已经通过互联网的勇气直奔互联网,最接近的是Apache Mina Server。
目前,我正在使用用户名和密码身份验证,如下所示:
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;
}
有没有一种方法可以用Apache Mina来实现私钥身份验证器?还是如果不可能的话,我可以在测试场景中使用其他模拟SFTP服务器吗?
您实际上是在寻找公用密钥验证者。
客户端/用户使用其公钥进行身份验证。服务器永远不会看到私钥。
因此,您实现PublickeyAuthenticator
接口以检查方法的PublicKey key
参数是否与您在客户端中用于认证的密钥对的公共部分匹配。authenticate
您可以从使用类似OpenSSH的配置文件的AuthorizedKeysAuthenticator
实现开始。.ssh/authorized_keys
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句