Linux

Windows 到 linux:帶有 SSH 和私鑰/公鑰對的 Putty

  • September 14, 2012

我花了大約 3 個小時試圖弄清楚如何使用 putty 從我的 Windows 機器連接到 linux 機器而無需發送密碼。

這是連接到使用 OpenSSH 的 Ubuntu 伺服器。私鑰是 SSH-2 RSA,1024 位。我正在使用 SSH2 進行連接。

我已經遇到了更常見的問題:

  1. Putty 以“錯誤的格式”生成了公鑰。我已經糾正了這一點(如在此部落格文章中所見)。但是,由於我尚未連接,我無法絕對確認此文件的格式是否正確。關鍵現在都在一行上,我嘗試在文件末尾添加/刪除換行符。我還嘗試了幾次公共文件修改過程,以確保我沒有搞砸手動轉換。即便如此,我也無法在這裡驗證準確性。
  2. 權限也同時出現了錯誤,特別是意味著該文件具有太多權限。我也必須解決這個問題,我知道它已經過去了,因為我不再在**/var/log/auth.log**中看到相關錯誤。
  3. 如果伺服器有舊版本的 OpenSSH,我已經嘗試了authorized_keysauthorized_keys2,但這並沒有改變。
  4. 我確實可以作為使用者訪問。在這個密鑰文件失敗後,我可以輸入我的密碼

我所擁有的唯一剩餘資訊是它聲稱我所謂的密碼錯誤:

sshd[22288]: Failed password for zzzzzzz from zz.zz.zz.zz port 53620 ssh2

即便如此,據我所知,這只是某個地方的懶惰嘗試/擷取,因為我認為根本不涉及密碼

我在任何使用的 /var/log 文件中都看不到其他任何內容。還有什麼可能是錯的?

  • 使用 PuttyGen 生成您的密鑰。
  • 右鍵點擊“用於粘貼的公鑰…”文本框並選擇select all
  • 再次右鍵點擊並選擇copy
  • 連接到您的主機並編輯.ssh/authorized_keys,並粘貼您的密鑰,從您嘗試關注該影片時刪除任何其他預先存在的內容。
  • 驗證您的~/.ssh文件夾是否0700chmod 0700 ~/.ssh/
  • 您的 authorized_keys 文件應該是0600這樣chmod 0600 ~/.ssh/authorized_keys的。

在此處輸入圖像描述

這意味著密鑰交換沒有發生或失敗。

請下載 cli 工具 plink.exe(與下載 putty.exe 相同的位置)並進行一些調試

plink -v -i yourprivatekeyfile user@server

看看它告訴你什麼,除了伺服器說什麼。

您可以在 powershell 或 cmd 視窗中執行此操作。

如果您已經生成了預設的 putty 公共文件,則可以將其轉換為

ssh-keygen -i -f yourputtypubkeyfile> openssh.key

被添加到您的 authorized_keys

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