SSH鍵に対して0644
、つまり-rw-r--r--
がオープンしすぎるのはなぜですか?また、.ssh
ディレクトリ(0700
)またはホームディレクトリ(0731
)に対する誤った権限を見つけることができませんでした。
ところで、ssh-keygen -y -f my_key.pub
を使用してキーの言い換えをテストすると、このエラーが発生します
宜しくお願いします
間違ったファイルでssh-keygenを実行している可能性があります。 ssh-keygen -y
はprivateキーファイルを操作します。 「.pub」ファイルには通常publicキーが含まれています。おそらくそこにmy_key
という名前のファイルがあり、拡張子はありません。モード0600である必要があります。これが秘密鍵を含むファイルです。
質問に直接答えるために、SSHキーは通常、パスワードなしでリモートサーバーへの接続を許可するために使用されます。秘密鍵を所持していると、その鍵を受け入れるシステムの誰かがあなたのアカウントにログインできるようになります。 ssh-keygenおよびその他のsshユーティリティでは、秘密鍵ファイルは機密性が高く、安全性を維持する必要があるため、権限を制限する必要があります。
0644
は、公開鍵に対してはオープンであるとは考えられませんが、秘密鍵に対してはオープンであるはずです。
秘密鍵には権限0600
が必要ですが、公開鍵には権限0644
が必要です。
ちなみに、.ssh
フォルダーの権限にも注意する必要があります。所有者であるあなただけがフォルダを制御できるように、0700
権限が必要です。
ホームディレクトリについては、グループなどに書き込み権限を付与することは想定されていません。
chmod go-w /home/username
を実行すると修正されます。
実行する必要がある唯一のコマンドはchmod 600 ~/.ssh/id_rsa
。それでおしまい。
これにより、ファイルのアクセス許可が変更され、所有者(ユーザー)がファイルを読み書きできるようになり、受信したエラーメッセージが削除されます。
上記の回答は有効ですが、chmod
を実行して権限を修正する前に、~/.ssh/config
のIdentityFile
(s)が秘密鍵を参照していることを確認してください。初心者はそれを誤解し、代わりに公開キー(.pub
拡張子付き)を参照して、同じエラーが発生する可能性があります(公開キーファイルのアクセス許可が秘密キーに対して開かれているため)。