這個問題已經被問過很多次了,但解決方案對我來說不起作用。
我嘗試使用 Ubuntu 系統中的金鑰 ssh 到我的 Synology NAS,但仍然要求我輸入使用者密碼,因為私鑰過於開放
我已在 /opt/duplicati/config/.ssh id_rsa 和 id_rsa.pub 中建立了金鑰,
然後我使用 ssh-copy-id 將公鑰複製到我的 NAS。
但是當我嘗試 ssh 進入我的 NAS 時,我得到了這個
ssh -p '9922' -i /opt/duplicati/config/.ssh/id_rsa.pub '[email protected]'
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/opt/duplicati/config/.ssh/id_rsa.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/opt/duplicati/config/.ssh/id_rsa.pub": bad permissions
[email protected]'s password:
奇怪的是,這個問題與私鑰有關,但它抱怨公鑰的 0644 權限過於開放。
解決方案是將金鑰和 .ssh 資料夾的權限減少到 0400 或 0600,但是當我這樣做時,ssh 似乎無法再讀取該文件,並且出現此錯誤
Load key "/opt/duplicati/config/.ssh/id_rsa.pub": error in libcrypto
我已經用 root 和管理員用戶嘗試過此操作,但我無法使其工作。
這是因為我的金鑰不在通常的主資料夾 ~/.ssh/ 中嗎?
從另一個 ubuntu 系統,我可以使用儲存在 ~/.ssh/ 中的密鑰 ssh 進入我的 NAS
答案1
ssh -p '9922' -i /opt/duplicati/config/.ssh/id_rsa.pub '[email protected]'
您的實際問題是您為“-i”參數使用了錯誤的密鑰檔案。擴展名為“.pub”的檔案包含金鑰的公共部分。不含“.pub”副檔名的對應檔案包含金鑰的私有部分。當您執行 ssh 用戶端連接到遠端伺服器時,您必須向 ssh 用戶端提供私鑰文件,而不是公鑰文件。
您可能有一個名為“/opt/duplicati/config/.ssh/id_rsa”的文件,不含“.pub”副檔名。這是運行 ssh 時應使用的檔案:
ssh -p '9922' -i /opt/duplicati/config/.ssh/id_rsa '[email protected]'
^--- no extension
您收到有關權限的錯誤,因為私鑰檔案包含敏感訊息,因此ssh
程式要求私鑰檔案具有阻止其他人讀取它的權限。公鑰檔案(副檔名為「.pub」的檔案)不包含敏感訊息,因此建立金鑰檔案的工具會建立權限較不嚴格的公鑰檔案。