Linux

SFTP 要求輸入未加密私鑰的密碼,但 WinSCP 可以正常工作嗎?

  • May 29, 2019

概括:

我想將文件從一台伺服器發送到另一台伺服器,並使用私鑰進行授權。

我相信公鑰安裝正確(WinSCP讓我用私鑰登錄),我故意在生成密鑰對時沒有創建密碼……但是當我嘗試在命令行上進行SFTP時,我’ m 提示輸入不存在的密碼使用者密碼。

如何僅使用未包裝的私鑰進行 SFTP?

細節:

我有兩台伺服器:

  • toServer123
  • 來自Server123

我想使用私鑰登錄將文件從一台伺服器發送到另一台伺服器。

  1. 我使用 puttyGen 生成了一個公私鑰對:
  • 提供提示的隨機移動後,我保存了公鑰和私鑰
  • 當提示有關未加密的私鑰時,我將密碼欄位留空並選擇“是”
  1. 我在 toServer123 上安裝公鑰:
  • 我使用密碼“password123”創建了一個使用者 paultest
  • 我測試我可以作為使用者 paultest ssh 進入 toServer123
  • 我創建 /home/paultest/.ssh/authorized_keys 並添加公鑰
  • 公鑰如下所示:

cat /home/paultest/.ssh/authorized_keys#=>

ssh-rsa verylongstringoflettersandnumbersNoNewlines paultest@toServer123

  • 我 chmod 權限:authorized_keys (644)、.ssh (700)
  1. 我在 fromServer123 上安裝了私鑰:
  • 我創建目錄:/home/support_user/sftp_proc (chmod 700)
  • 我將 my_private_key.ppk (chmod 600) 上傳到 /sftp_proc
  • 我在 /sftp_proc 中創建文件 text.txt,其中只包含“這是一個測試”
  1. 作為 support_user,我嘗試從 fromServer123 SFTP 到 toServer123:
sftp -oIdentityFile=./my_private_key.ppk paultest@toServer123

我的期望

我在沒有進一步提示的情況下登錄到伺服器,因為我正在使用未包裝的密鑰文件登錄。

我得到什麼

Connecting to toServer123...

Unauthorized access to or use of this system is prohibited.
All access and use may be monitored and recorded.

Enter passphrase for key './my_private_key.ppk':

我只是按Enter鍵,然後得到:

paultest@toServer123's password:

調試步驟

  • 如果我提供 paultest 密碼,SFTP 可以工作 - 但我不想使用密碼,我想使用私鑰登錄
  • 如果我嘗試使用 winSCP 登錄並提供私鑰,我就可以使用它登錄 - 我沒有收到密碼或密碼提示。

問題

如果我的目標是在不提供密碼的情況下登錄,並且沒有提示輸入不存在的密碼,我做錯了什麼?

編輯

my_private_key.ppk 看起來像:

PuTTY-User-Key-File-2: ssh-rsa
Encryption: none
Comment: rsa-key-20190528
Public-Lines: 6
LOTSOFLETTERSabcSYMBOLS//++ANDNUMBERS123==
Private-Lines: 14
EVENEVENMORELOTSOFLETTERSabcSYMBOLS//++ANDNUMBERS123==
Private-MAC: cf6c5c786f51a623b28eabe226c98dd6faa09787

AFAIKsftp期望不同格式的密鑰。OpenSSH 的密鑰應如下所示:

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAyGhJBM7lcIZgvTbLG4S2N1oHAIszqAKKysCQY17Fp0dHvL+A
8mVCYwKL0otQfS2FHmmeRfrpLQtaK7R/DFnxfXn8xczpY8Cn6sv+GUjztN0gacOK
Yyiymnfr4mKgSaRIaJDmi3ua8mlddvwtUJFkAt7WrVAgx0z4MkW5jR+riKnT69D+
<snip> 
YFbX0QKBgFTXQ+h79DR4ZwW/f5pop9v8H7GD+g/xRKadgFp4GTKA7RJx64XN/ok+
12+u6pApA8w+ah2K2yoaBIV1d3MatYfUwSJ+0esXTYczBeSXOg6YqrMqjZ4KH2wO
kOyu2/4Dq7VcuK4PSnF1wbd+ZPHffh+YOJIII4iU7fYoRMDHa3tW
-----END RSA PRIVATE KEY-----

因此,您應該將您的 ppk 密鑰轉換為 RSA 密鑰。是如何使用膩子工具來做到這一點

引用自:https://serverfault.com/questions/969194