web-dev-qa-db-ja.com

SSH:「 'my_key.pub'の権限0644がオープンしすぎています。」

SSH鍵に対して0644、つまり-rw-r--r--がオープンしすぎるのはなぜですか?また、.sshディレクトリ(0700)またはホームディレクトリ(0731)に対する誤った権限を見つけることができませんでした。

ところで、ssh-keygen -y -f my_key.pubを使用してキーの言い換えをテストすると、このエラーが発生します

宜しくお願いします

21
user2820379

間違ったファイルでssh-keygenを実行している可能性があります。 ssh-keygen -yprivateキーファイルを操作します。 「.pub」ファイルには通常publicキーが含まれています。おそらくそこにmy_keyという名前のファイルがあり、拡張子はありません。モード0600である必要があります。これが秘密鍵を含むファイルです。

質問に直接答えるために、SSHキーは通常、パスワードなしでリモートサーバーへの接続を許可するために使用されます。秘密鍵を所持していると、その鍵を受け入れるシステムの誰かがあなたのアカウントにログインできるようになります。 ssh-keygenおよびその他のsshユーティリティでは、秘密鍵ファイルは機密性が高く、安全性を維持する必要があるため、権限を制限する必要があります。

7
Kenster

0644は、公開鍵に対してはオープンであるとは考えられませんが、秘密鍵に対してはオープンであるはずです。

秘密鍵には権限0600が必要ですが、公開鍵には権限0644が必要です。

ちなみに、.sshフォルダーの権限にも注意する必要があります。所有者であるあなただけがフォルダを制御できるように、0700権限が必要です。

ホームディレクトリについては、グループなどに書き込み権限を付与することは想定されていません。

chmod go-w /home/usernameを実行すると修正されます。

11
pallxk

実行する必要がある唯一のコマンドはchmod 600 ~/.ssh/id_rsa。それでおしまい。

これにより、ファイルのアクセス許可が変更され、所有者(ユーザー)がファイルを読み書きできるようになり、受信したエラーメッセージが削除されます。

10
niftylettuce

上記の回答は有効ですが、chmodを実行して権限を修正する前に、~/.ssh/configIdentityFile(s)が秘密鍵を参照していることを確認してください。初心者はそれを誤解し、代わりに公開キー(.pub拡張子付き)を参照して、同じエラーが発生する可能性があります(公開キーファイルのアクセス許可が秘密キーに対して開かれているため)。

0
Javarome