無法使用金鑰 ssh 存取我的 Synology NAS

無法使用金鑰 ssh 存取我的 Synology NAS

這個問題已經被問過很多次了,但解決方案對我來說不起作用。
我嘗試使用 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」的檔案)不包含敏感訊息,因此建立金鑰檔案的工具會建立權限較不嚴格的公鑰檔案。

答案2

這是相關的opensslGitHub問題和伺服器故障問題。在這兩種情況下,產生新密鑰似乎都有效。這可能是由相容性或損壞問題引起的。

相關內容