Synology NASにキーを使ってSSH接続できない

Synology NASにキーを使ってSSH接続できない

この質問は既に何度も聞かれていますが、解決策は私には役に立ちません。Ubuntu
システムからSynology NASにキーを使ってsshしようとしていますが、秘密鍵があまりにもオープンであるため、ユーザーパスワードを要求されます。

/opt/duplicati/config/.ssh id_rsa と id_rsa.pub に鍵を作成しました。
その後、ssh-copy-id を使用して公開鍵を NAS にコピーしました。
しかし、NAS に ssh しようとすると、次のエラーが表示されます。

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

すでにルートと管理者ユーザーでこれを試しましたが、うまくいきません。
これは、キーが通常のホームフォルダー ~/.ssh/ にないからでしょうか?
別の Ubuntu システムからは、キーを ~/.ssh/ に保存して NAS に ssh できました。

答え1

ssh -p '9922' -i /opt/duplicati/config/.ssh/id_rsa.pub '[email protected]'

実際の問題は、「-i」パラメータに間違ったキー ファイルを使用していることです。拡張子が「.pub」のファイルには、キーの公開部分が含まれています。拡張子が「.pub」でない対応するファイルには、キーの秘密部分が含まれています。リモート サーバーに接続するために ssh クライアントを実行する場合、公開キー ファイルではなく、秘密キー ファイルを ssh クライアントに提供する必要があります。

おそらく、「.pub」拡張子のない「/opt/duplicati/config/.ssh/id_rsa」という名前のファイルがあるでしょう。これは、ssh を実行するときに使用するファイルです。

ssh -p '9922' -i /opt/duplicati/config/.ssh/id_rsa '[email protected]'
                                                  ^--- no extension

権限に関するエラーが発生するのは、秘密キー ファイルには機密情報が含まれているため、プログラムではssh秘密キー ファイルに他のユーザーが読み取れないようにする権限が必要であるためです。公開キー ファイル (拡張子が「.pub」のファイル) には機密情報は含まれていないため、キー ファイルを作成するツールは、それほど厳密でない権限で公開キー ファイルを作成します。

答え2

関連するopensslはこちらGitHub の問題そしてサーバー障害質問どちらの場合も、新しいキーの生成は成功したようです。これは互換性または破損の問題が原因である可能性があります。

関連情報