WinSCP 無法辨識金鑰文件

WinSCP 無法辨識金鑰文件

我正在嘗試為自動交易設定批次文件,但是到目前為止我的測試失敗了。

我有建立連接的伺服器的公鑰。它已儲存為 .pkk 檔案並匯入到 WinSCP 中。

我已將結果記錄在文字檔案中,內容如下:

Username: 4m4nseth (Password: No, Key File: No)

密鑰檔案在那裡,但 WinSCP 由於某種原因沒有拾取它。

如果作為批次檔運行,我會收到以下訊息:


會話名稱:4m4nseth@IP 位址 主機名稱:IP 位址(連接埠:22) 使用者名稱:4m4nseth(密碼:否,金鑰檔案:否) 隧道:無 傳輸協定:SFTP (SCP) Ping 類型:-,Ping 間隔:30 秒;超時:15 秒

但是如果在 WinSCP 中執行以下內容


會話名稱:4m4nseth@ipaddress 主機名稱:ipaddress(連接埠:22) 使用者名稱:4m4nseth(密碼:否,金鑰檔案:是) 隧道:無傳輸協定:SFTP (SCP)

正如您所看到的,密鑰檔案已保存,但作為批次命令運行時它無法識別。

答案1

我相信你的公鑰和私鑰是錯的。

如果您使用 WinSCP 將資訊複製到伺服器(或從伺服器複製資訊),則需要在執行 WinSCP 的機器上產生公鑰/私鑰,使用私鑰配置 WinSCP 並將公鑰放在伺服器上的適當位置(在Linux 中~username/.ssh/authorized_keys

雖然一開始這對我來說似乎違反直覺(很久以前!!),但如果你仔細研究一下邏輯,它實際上是完全有道理的。考慮如下可能會有所幫助 -

  1. 私鑰應該是私有的,也就是只有您應該知道的東西。
  2. 如果伺服器屬於其他人,您不想給他們一些只有
    您應該知道的東西,所以您不想給他們您的私鑰。
  3. 另一方面,如果您向他們提供您的公鑰,並且系統遭到破壞並且其他人將您的公鑰添加到他們的設置中,這只意味著您可以訪問他們的系統,您沒有丟失任何內容。另一方面,如果您必須向他們提供您的私鑰,您就失去了對其的控制權。

相關內容