在 memory/embedded SFTP 服务器中,用于在 Java 中使用私钥身份验证进行测试
In memory/embedded SFTP server for test with private key authentication in Java
场景是我需要为执行 SFTP 文件传输的应用程序编写测试,并且我需要一个 in memory/embedded 具有私钥身份验证实现的 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;
}
});
我试图找到一种实现私钥身份验证的方法,但似乎只有一个身份验证器,但那是一个 public 密钥身份验证器,如下所示:
public void setPublickeyAuthenticator(PublickeyAuthenticator publickeyAuthenticator) {
this.publickeyAuthenticator = publickeyAuthenticator;
}
有没有办法用 Apache Mina 实现私钥验证器?或者如果不可能的话,还有其他模拟 SFTP 服务器可以用于我的测试场景吗?
您实际上是在寻找 public 密钥验证器。
client/user 使用其 public 密钥进行身份验证。服务器永远不会看到私钥。
所以你实现了 PublickeyAuthenticator
接口来检查 authenticate
方法的 PublicKey key
参数是否匹配你在你的文件中使用的密钥对的 public 部分客户端进行身份验证。
您可以从使用 OpenSSH .ssh/authorized_keys
类配置文件的 AuthorizedKeysAuthenticator
实现开始。
场景是我需要为执行 SFTP 文件传输的应用程序编写测试,并且我需要一个 in memory/embedded 具有私钥身份验证实现的 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;
}
});
我试图找到一种实现私钥身份验证的方法,但似乎只有一个身份验证器,但那是一个 public 密钥身份验证器,如下所示:
public void setPublickeyAuthenticator(PublickeyAuthenticator publickeyAuthenticator) {
this.publickeyAuthenticator = publickeyAuthenticator;
}
有没有办法用 Apache Mina 实现私钥验证器?或者如果不可能的话,还有其他模拟 SFTP 服务器可以用于我的测试场景吗?
您实际上是在寻找 public 密钥验证器。
client/user 使用其 public 密钥进行身份验证。服务器永远不会看到私钥。
所以你实现了 PublickeyAuthenticator
接口来检查 authenticate
方法的 PublicKey key
参数是否匹配你在你的文件中使用的密钥对的 public 部分客户端进行身份验证。
您可以从使用 OpenSSH .ssh/authorized_keys
类配置文件的 AuthorizedKeysAuthenticator
实现开始。