我正在尝试使用Apache mina sshd来实现ssh连接的公钥身份验证。检查完库之后,我发现进行身份验证的第一步可能是:setPublickeyAuthenticator#authenticate,用于根据其公共密钥来确定服务器上是否允许特定用户,即比较参数中的公共密钥和公共密钥在〜/ .ssh / authorized_keys中。
似乎参数中的公钥是从客户端传递的,我的问题是客户端如何传递密钥的,即,如何调用setPublickeyAuthenticator#authenticate函数? 参数中的公钥格式是什么?
ssh.setPublickeyAuthenticator(new PublickeyAuthenticator() {
public boolean authenticate(String username, PublicKey key, ServerSession session) {
// Compare the Public key in params with the authorized_keys
}
});
}