簡體   English   中英

在內存/嵌入式 SFTP 服務器中使用 Java 中的私鑰身份驗證進行測試

[英]In memory/embedded SFTP server for test with private key authentication in Java

場景是我需要為執行 SFTP 文件傳輸的應用程序編寫測試,並且我需要一個具有私鑰身份驗證實現的內存/嵌入式 SFTP 服務器,以便我可以測試文件傳輸是否與嵌入式/內存服務器一起正常運行私鑰 (.pem) 文件身份驗證。

我已經深入了解了互聯網,最接近的是Apache Mina Server,如this SO 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;
}

有沒有辦法用 Apache Mina 實現私鑰身份驗證器? 或者,如果不可能,還有其他模擬 SFTP 服務器可以用於我的測試場景嗎?

您實際上是在尋找公鑰驗證器

客戶端/用戶使用其公鑰進行身份驗證。 服務器永遠不會看到私鑰。


因此,您實現了PublickeyAuthenticator接口以檢查authenticate方法PublicKey key參數是否與您在客戶端中用於進行身份驗證的密鑰對的公共部分匹配。

您可以從使用OpenSSH .ssh/authorized_keys類的配置文件的AuthorizedKeysAuthenticator實現開始。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM