2018年12月3日
在安裝了OpenSSH的Windows機器上可以像Linux系統上一樣使用ssh與scp等命令,不過在需要密鑰登陸時,即使按照命令格式ssh -i 私鑰路徑
正確輸入,有時也會遇到私鑰安全性不夠的錯誤,具體信息如下:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'private-key' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
這是由私鑰文件存儲路徑的權限過于開放造成的。按照StackExchange網站上網友的回答,可以使用下面的方法來解決這一問題,演示以win10為例。
右鍵打開私鑰文件或其所在文件夾的屬性,點擊安全選項卡中的高級選項,在彈出窗口中點擊左下角的禁用繼承,接著選擇從此對象中刪除所有已繼承的權限。這樣就首先刪除了所有權限。
下一步還需要添加用戶的權限。點擊剛才禁用繼承選項上方的添加,彈出菜單中點擊左上角的選擇主體,在選擇用戶或組窗口的下方有輸入要選擇的對象名稱窗口,這里輸入Windows用戶名(如:Administrator等)然后檢查名稱,如果用戶名沒有問題的話就會自動匹配用戶名,然后確定,在權限項目窗口中選擇完全控制,然后確定,最后在高級安全設置中確定添加的權限并確定修改文件屬性,就完成了權限的添加。
這時再用ssh -i 私鑰路徑
命令時就不會彈出權限過于開放的警告了。
最后還有一點小提示,在使用Windows下putty時使用的私鑰文件(后綴.ppk)是putty私有的私鑰格式,是不兼容于OpenSSH的,如果想在OpenSSH命令下使用puttygen生成的私鑰,需要在puttygen軟件中轉換私鑰格式為OpenSSH格式。