この質問は既に何度も聞かれていますが、解決策は私には役に立ちません。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 の問題そしてサーバー障害質問どちらの場合も、新しいキーの生成は成功したようです。これは互換性または破損の問題が原因である可能性があります。