web-dev-qa-db-ja.com

ssh "アクセス許可がオープンです"エラー

私は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ファイルにどのような権限レベルを与えますか?

1508
Yannick Schall

キーはあなただけが読めるようにする必要があります。

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.
2616
quickshiftin

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

82
tanza9

Windows 8.1で機能するロケールに依存しないソリューションは、次のとおりです。

chgrp 545 ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa

GID 545は 特殊なID で、ロケールが異なるWord for Usersを使用している場合でも、常に「Users」グループを参照します。

31
thehouse

0600は私のものです(そしてそれは働いています)

28
Devin Ceartas

理解できる値は次のとおりです。

キーファイルが配置されている隠しディレクトリ ".ssh"の場合は700

キーファイル "id_rsa"の場合は600

21
ajaaskel

キーに対する "0x00"アクセス許可の要件には1つ例外があります。キーがrootによって所有され、その中にユーザーが含まれているグループによってグループ所有されている場合、それは "0440"になり、そのグループ内のすべてのユーザーがそのキーを使用できます。

私はこれがセット "0xx0"のどんな許可でもうまくいくと信じますが、私はすべてのバージョンですべての組み合わせをテストしたわけではありません。私はCentOS 6で5.3p1-84で0660を試してみました、そしてグループはユーザーのプライマリグループではなくセカンダリグループです、そして、それはうまく働きます。

これは通常、誰かの個人的な鍵ではなく、自動化に使用される鍵に対して行われます。アプリケーションがその鍵をめちゃくちゃにしたくない場合は、そうします。

同様の規則が.sshディレクトリの制限にも適用されます。

13
syberghost

400の許可を与える、コマンドの下 

chmod 400 /Users/username/.ssh/id_rsa

enter image description here

9
Sujit Dhamale

私のために働いたこと

chgrpユーザーフォルダ

chmod 600フォルダ

4
Jerome Ansia

別のMacから移行した後、同じ問題が発生しました。そして、私のキーでgithubに接続することをブロックしました。

以下のように許可をリセットしましたが、今ではうまく機能しています。

chmod 700 ~/.ssh     # (drwx------)
cd ~/.ssh            
chmod 644 *.pub      # (-rw-r--r--)
chmod 600 id_rsa     # (-rw-------)
3
Jeff Gu Kang

Windows 10では、cygwinのchmodとchgrpだけでは不十分でした。ファイルを右クリック - >プロパティ - >セキュリティ(タブ)し、アクティブユーザー以外のすべてのユーザーとグループを削除しなければなりませんでした。

3
Jared Beach

ここには興味深いメッセージがあります。オペレーティングシステムは、秘密鍵が開かれている場合にリモート接続を拒否するのに十分スマートです。それはid_rsaのためのパーミッションが広く開かれているというリスクを理解しています(読んで、誰でも編集可能です)。

{最初にロックを変更してから、すでに持っているキーでそれを開くことができます。 }

cd ~/.ssh
chmod 400 id_rsa

シモンズ: 

複数のサーバー(非プロダクション)で作業している間、私たちのほとんどはリモートサーバーをsshで接続する必要があると感じています。良いアイデアは、サーバー間でsshの信頼関係を築くためのアプリケーションレベルのコード(jschを使ったJavaかもしれません)を用意することです。このようにして接続はパスワード不要になります。その場合、Perlがインストールされています - net sshモジュールを使うこともできます。

2
Piyush Baijal

私は私の窓10にエラーがあるので、私は次のように許可を設定し、それは動作します。

Permission for id_rsa of windows 10

詳しくは、「SYSTEM」と「Administrators」のみになるまで、他のユーザー/グループを削除してください。それから、読み取り専用でそれにあなたのwindowsログインを追加してください。

id_rsaファイルはc:\users\<username>フォルダの下にあります。

1

これは私のために働いていたものです(マック)

Sudo chmod 600 path_to_your_key.pem 

その後:

ssh -i path_to_your_key user@server_ip

それが助けを願っています

0
lansanalsm

私は私の秘密鍵に600レベルの許可を試みましたが、それは私のために働きました。 chmod 600 privateKey [dev] $ ssh -i privateKey user @ ip は働きました

chmod 755 privateKey [dev] $ ssh -i privateKeyユーザ@ ip それは以下の問題を与えていました: 'privateKey'に対するパーミッション0755がオープンすぎています。あなたの秘密鍵ファイルが他の人からアクセスされないようにする必要があります。この秘密鍵は無視されます。ロードキー "privateKey":不正なアクセス権

0

Ansibleで遊んでいる間にこのエラーに遭遇しました。この問題を解決するために、秘密鍵の許可を 600 に変更しました。そしてそれはうまくいった!

chmod 600 .vagrant/machines/default/virtualbox/private_key
0
vildhjarta

私にとっては(Linux用のUbuntuサブシステムを使用して)、エラーメッセージは次のように変更されました。

 Permissions 0555 for 'key.pem' are too open

chmod 400を使用した後デフォルトユーザーとしてrootを使用したのがその理由です。

Cmdを使ってこれを変更します。

 ubuntu config --default-user your_username
0