
我是一名軟體開發人員,試圖連接到客戶的 axway tumbleweed 伺服器以從 Windows 伺服器投放文件。首先,我嘗試使用 FileZilla 和 PuTTY 等標準工具來了解它的工作原理,並向自己證明它甚至可以在開始編碼之前完成,但老實說,我不知道風滾草是否可以使用FileZilla 像SFTP 一樣進行訪問,或者如果我需要特殊的SSH 檔案伺服器工具或其他工具。
我幾天來一直盯著他們給我們的信息,並在互聯網上搜索,似乎無法找到我被要求做的事情是否可能。有些文章和答案似乎說“FileZilla 和 PuTTY 與公鑰相容”,有些則說“您必須擁有 PPK 檔案才能連接到遠端伺服器”。
根據我對密碼學的理解,向我發送他們的公鑰是有意義的,因此我方可以使用給定的密鑰加密通信並將其發送給他們,他們使用他們的私鑰來解密它,但我實際上如何做它?
我已被給予:
- PuTTY 和 FileZilla 絕對不會對 .pub 檔案執行任何操作
- 至少 DNS 解析為 IP 的伺服器的 URL,但 filezilla 在確定 URL 有效後逾時
- 放置檔案的資料夾路徑
當我嘗試將 .pub 檔案匯入 PuTTYgen 或 PAgeant 中的任何位置時,我收到「無法載入私鑰(SSH-2 公鑰(RFC 4716 格式))」。當然,我對錯誤進行了一些谷歌搜索,我唯一能告訴的是“SSH-2公鑰(RFC 4716格式)”部分可能描述了我得到的文件的格式。
誰能向我解釋一下如何連接到伺服器並僅使用此資訊儲存檔案?或者為什麼我對情況的理解有缺陷並且實際上不可能?或者兩者都如此?
答案1
老實說,我不知道是否可以使用 FileZilla 像 SFTP 一樣存取 tumbleweed,或者我需要特殊的 SSH 檔案伺服器工具或其他工具。
SFTP 是透過 SSH 傳輸檔案的標準方法。如果您被告知透過 SSH 上傳文件,他們最有可能的意思是 SFTP,在這種情況下 FileZilla 或 WinSCP 可以完成這項工作。
(PuTTY 本身沒有圖形 SFTP 用戶端,只有命令列客戶端),但 WinSCP 基於 PuTTY 核心 - PuTTY 支援的任何伺服器和任何金鑰格式,WinSCP 也是如此。
從我找到的有關 Axway Tumbleweed 的少量資訊來看,它有一個 Web 介面,但也接受透過 SSH 的 SFTP 連線。顯然它也可以充當 SFTP 用戶端,拉取文件從另一個 SFTP 伺服器。
我幾天來一直盯著他們給我們的信息,並在互聯網上搜索,似乎無法找到我被要求做的事情是否可能。有些文章和答案似乎說“FileZilla 和 PuTTY 與公鑰相容”,有些則說“您必須擁有 PPK 檔案才能連接到遠端伺服器”。
這些文章和答案(或至少是您引用的部分)將許多不同的內容混為一談,達到了無用和誤導的程度。
整體上與 SSH“公鑰”身份驗證機制相容。是的,幾乎所有 SSH 用戶端都支援基於金鑰的使用者身份驗證。
與 OpenSSH 軟體用於儲存公鑰和私鑰的檔案格式相容(通常會產生兩個檔案「foo」和「foo.pub」)。
是的,FileZilla 和 PuTTY 可以直接使用 OpenSSH 格式的金鑰文件,也可以將它們轉換為可以使用的格式(例如 PuTTYgen 可以將它們匯入到 .ppk 檔案中)。
但是,在 OpenSSH 的 ssh-keygen 產生的兩個檔案(「somekey」和「somekey.pub」)中,只有前者包含所有必要的數據 - 僅 .pub 文件是不夠的。
終於可以使用了僅有的用於執行 SSH“公鑰”身份驗證並登入伺服器的公鑰。
不——儘管它的名字是這樣的,但身份驗證機制從根本上要求同時使用密鑰對的公共部分和私有部分,並且不同的客戶端無法繞過這一點。
因此,將您的文章引用解釋為僅使用 .pub 檔案即可完全取代 .ppk 檔案是沒有意義的 - 它不包含必要的資料;它通常只是碰巧與另一個具有此功能的文件一起提供。
根據我對密碼學的理解,向我發送他們的公鑰是有意義的,因此我方可以使用給定的密鑰加密通信並將其發送給他們,他們使用他們的私鑰來解密它,但我實際上該怎麼做呢?
雖然這在理論上是有意義的,但這根本不是 SSH 中公鑰的使用方式。它們不用於加密實際通訊;它們僅用於製作數位簽名。
首先,SSH使用DH/ECDH演算法來建立加密金鑰,伺服器使用其「主機金鑰」僅對結果進行簽署並證明其身分。
隨後在登入/身份驗證階段,您的用戶端使用您自己的金鑰對透過簽署伺服器驗證的一些隨機資料來證明您的身份;此時加密已經啟用,您的金鑰對不會以任何方式影響它。
誰能向我解釋一下如何連接到伺服器並僅使用此資訊儲存檔案?或者為什麼我對情況的理解有缺陷並且實際上不可能?或者兩者都如此?
我要說的是,您無法連接到伺服器,因為您沒有獲得足夠的資訊。但可能有以下幾種可能性:
他們給了你錯誤的文件。例如,系統管理員使用 為您建立了一個 SSH 金鑰對
ssh-keygen
,取得了「jrud_key」和「jrud_key.pub」文件,並打算透過電子郵件將前者傳送給您,但意外地附加了後者。這是很有可能的,特別是如果您以前沒有使用過 SSH 金鑰對,並且管理員希望透過為您建立金鑰對來加快流程。
他們給了你伺服器的公鑰,以便您可以驗證您是否正在連接到真實伺服器。
雖然有可能,但這不太可能。大多數系統管理員都會給您金鑰指紋相反地(因為這就是您的客戶將向您展示的內容以供驗證),或者根本不會費心提供任何東西。
此外,如果是這種情況,他們仍然會向您提供一些用戶身份驗證詳細資訊 - 如果不是私鑰文件,則為密碼,或者要求您發送自己的 .pub 文件給他們反而。
他們希望您使用 SSH/SFTP 以外的其他工具。