
在 Windows 執行 ssh 顯示錯誤訊息
C:\Users\max>ssh 4.216.213.123
Bad permissions. Try removing permissions for user: BUILTIN\\Users (S-1-5-32-545) on file C:/Users/max/.ssh/vm-max-pc-key.pem.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'C:\\Users\\max/.ssh/vm-max-pc-key.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "C:\\Users\\max/.ssh/vm-max-pc-key.pem": bad permissions
[email protected]: Permission denied (publickey).
在使用 Windows 系統連線到遠端伺服器的時候,是不是常常遇到 SSH 跟你鬧脾氣?
畫面跳出一大串警告,寫著 WARNING UNPROTECTED PRIVATE KEY FILE ,然後無情地拒絕連線。這其實不是你的伺服器壞掉,而是 SSH 的安全機制太過傲嬌。它覺得你的金鑰檔案太過公開,像是把家裡鑰匙直接貼在大門口一樣危險,所以故意裝作不認識你。
這個問題通常是因為金鑰檔案的權限開太大,導致系統內的其他使用者也能讀取。要解決這個尷尬的狀況,有兩種快速的方法可以馴服它。
第一種方法是使用命令提示字元。
請開啟命令提示字元,並依序輸入以下指令。記得將路徑換成自己的金鑰檔案路徑。
第一步是取消繼承權限,指令為
icacls C:\Users\your_username\.ssh\my_key.pem /inheritance:r
第二步是重新給予自己完整的控制權限,指令為
icacls C:\Users\your_username\.ssh\my_key.pem /grant:r your_username:F
第二種方法是使用圖形介面,適合喜歡用滑鼠點擊的人。
請打開檔案總管,找到金鑰檔案。在檔案上按右鍵選擇內容,切換到安全性標籤,接著點擊進階。
在進階安全性設定視窗中,點擊停用繼承,並選擇將繼承的權限轉換為此物件的明確權限。
最後在權限項目清單中,找到 Users 這個群組並將它移除,只留下自己的使用者帳號擁有存取權限。點擊套用並確定就完成了。
設定完成之後,再次嘗試原本的連線指令,應該就能順利連上伺服器。如果還是失敗,可以嘗試在指令中明確加上減 i 參數,例如
ssh -i C:\Users\your_username.ssh\my_key.pem [email protected]
這樣就能成功登入了。