我正在開發使用C#(.NET Assembly)的SFTP WinSCP客戶端。在我的測試環境中,我是通過密碼驗證完成的。以下是我的會話選項:如何使用.crt文件進行SSH公鑰認證
// Setup session options
SessionOptions sessionOptions = new SessionOptions {
Protocol = Protocol.Sftp,
HostName = "example.com",
UserName = "user",
Password = "mypassword",
SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
};
但是真實環境沒有用戶密碼。服務器管理員提供擴展名爲「.crt」的公用密鑰
因此,使用此公鑰如何更改我的程序(SessionOptions
)?
這個細節足以執行這個實現嗎?
預覽CRT文件
你確定你應該使用SFTP嗎? '.crt'文件看起來像一個證書,與TLS/SSL(可能FTPS = FTP over TLS/SSL)一起使用,而不是SSH(SFTP)。你也需要一個私鑰,而不是公鑰(但'.crt'可能包含兩者)。你應該生成你的私人密鑰,你不應該從管理員那裏得到它。因此,另一個混淆可能是它是服務器的證書,而不是用於驗證的帳戶證書。 – 2014-09-19 07:21:54
謝謝Martin ...你能給我一個如何做SFTP公鑰認證的步驟嗎? – Suravi 2014-09-19 07:30:07
不,除非你至少回答我上面的一些問題。我沒有見過'.crt'文件用於SFTP公鑰認證。打開文件時(文本編輯器中)文件是什麼樣的?您是否從管理員那裏獲得有關如何使用它的任何信息/文檔(即使是針對其他客戶端/工具)? – 2014-09-19 07:32:40