私はMacに問題があり、ディスクにどんな種類のファイルも保存できなくなっていました。
しかし、リポジトリをコミットしようとすると、sshから次のようなエラーメッセージが表示されます。
Permissions 0777 for '/Users/username/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
Id_rsaファイルにどのような権限レベルを与えますか?
キーはあなただけが読めるようにする必要があります。
chmod 400 ~/.ssh/id_rsa
600 も問題ないようです(実際には編集するためにファイルのアクセス権を変更する必要がないため、ほとんどの場合はこれよりも優れています)。
マンページの関連部分(man ssh
)
~/.ssh/id_rsa Contains the private key for authentication. These files contain sensitive data and should be readable by the user but not accessible by others (read/write/execute). ssh will simply ignore a private key file if it is accessible by others. It is possible to specify a passphrase when generating the key which will be used to encrypt the sensitive part of this file using 3DES. ~/.ssh/identity.pub ~/.ssh/id_dsa.pub ~/.ssh/id_ecdsa.pub ~/.ssh/id_rsa.pub Contains the public key for authentication. These files are not sensitive and can (but need not) be readable by anyone.
Windows 8.1でCygwinを使用する場合は、実行する必要があるコマンドがあります。
chgrpユーザー〜/ .ssh/id_rsa
その後、ここに投稿された解決策を適用することができます、400または600はOKです。
chmod 600〜/ .ssh/id_rsa
Ref: http://vineetgupta.com/blog/cygwin-permissions-bug-on-windows-8
Windows 8.1で機能するロケールに依存しないソリューションは、次のとおりです。
chgrp 545 ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
GID 545は 特殊なID で、ロケールが異なるWord for Usersを使用している場合でも、常に「Users」グループを参照します。
0600は私のものです(そしてそれは働いています)
理解できる値は次のとおりです。
キーファイルが配置されている隠しディレクトリ ".ssh"の場合は700
キーファイル "id_rsa"の場合は600
キーに対する "0x00"アクセス許可の要件には1つ例外があります。キーがrootによって所有され、その中にユーザーが含まれているグループによってグループ所有されている場合、それは "0440"になり、そのグループ内のすべてのユーザーがそのキーを使用できます。
私はこれがセット "0xx0"のどんな許可でもうまくいくと信じますが、私はすべてのバージョンですべての組み合わせをテストしたわけではありません。私はCentOS 6で5.3p1-84で0660を試してみました、そしてグループはユーザーのプライマリグループではなくセカンダリグループです、そして、それはうまく働きます。
これは通常、誰かの個人的な鍵ではなく、自動化に使用される鍵に対して行われます。アプリケーションがその鍵をめちゃくちゃにしたくない場合は、そうします。
同様の規則が.sshディレクトリの制限にも適用されます。
私のために働いたこと
chgrpユーザーフォルダ
chmod 600フォルダ
別のMacから移行した後、同じ問題が発生しました。そして、私のキーでgithubに接続することをブロックしました。
以下のように許可をリセットしましたが、今ではうまく機能しています。
chmod 700 ~/.ssh # (drwx------)
cd ~/.ssh
chmod 644 *.pub # (-rw-r--r--)
chmod 600 id_rsa # (-rw-------)
Windows 10では、cygwinのchmodとchgrpだけでは不十分でした。ファイルを右クリック - >プロパティ - >セキュリティ(タブ)し、アクティブユーザー以外のすべてのユーザーとグループを削除しなければなりませんでした。
ここには興味深いメッセージがあります。オペレーティングシステムは、秘密鍵が開かれている場合にリモート接続を拒否するのに十分スマートです。それはid_rsaのためのパーミッションが広く開かれているというリスクを理解しています(読んで、誰でも編集可能です)。
{最初にロックを変更してから、すでに持っているキーでそれを開くことができます。 }
cd ~/.ssh
chmod 400 id_rsa
シモンズ:
複数のサーバー(非プロダクション)で作業している間、私たちのほとんどはリモートサーバーをsshで接続する必要があると感じています。良いアイデアは、サーバー間でsshの信頼関係を築くためのアプリケーションレベルのコード(jschを使ったJavaかもしれません)を用意することです。このようにして接続はパスワード不要になります。その場合、Perlがインストールされています - net sshモジュールを使うこともできます。
これは私のために働いていたものです(マック)
Sudo chmod 600 path_to_your_key.pem
その後:
ssh -i path_to_your_key user@server_ip
それが助けを願っています
私は私の秘密鍵に600レベルの許可を試みましたが、それは私のために働きました。 chmod 600 privateKey [dev] $ ssh -i privateKey user @ ip は働きました
chmod 755 privateKey [dev] $ ssh -i privateKeyユーザ@ ip それは以下の問題を与えていました: 'privateKey'に対するパーミッション0755がオープンすぎています。あなたの秘密鍵ファイルが他の人からアクセスされないようにする必要があります。この秘密鍵は無視されます。ロードキー "privateKey":不正なアクセス権
Ansibleで遊んでいる間にこのエラーに遭遇しました。この問題を解決するために、秘密鍵の許可を 600 に変更しました。そしてそれはうまくいった!
chmod 600 .vagrant/machines/default/virtualbox/private_key
私にとっては(Linux用のUbuntuサブシステムを使用して)、エラーメッセージは次のように変更されました。
Permissions 0555 for 'key.pem' are too open
chmod 400を使用した後デフォルトユーザーとしてrootを使用したのがその理由です。
Cmdを使ってこれを変更します。
ubuntu config --default-user your_username