web-dev-qa-db-ja.com

CygwinでSSH / Gitを設定すると、「〜/ .ssh / configの不正なアクセス許可」が生成されます

CygwinでOpenSSHを使用してGitをセットアップしようとしています。私はほとんどすべてをセットアップしました。私はエージェントと公開鍵などを持っていますが、今ではこの本当に奇妙なエラーが発生します。

$ git pull -u Origin master
Bad owner or permissions on /home/Jordan/.ssh/config
fatal: The remote end hung up unexpectedly

グーグルすると、(もちろん)権限エラーのようです。 1つの問題:権限は私には問題ないように見えます。

chmod 0600 ~/.ssh/configも試しましたが、役に立ちませんでした。私が試したこと:

Jordan@EarlzWindows8VM ~/dev/NonExceptional
$ chmod 0600 ~/.ssh/config 

Jordan@EarlzWindows8VM ~/dev/NonExceptional
$ stat ~/.ssh/config 
  File: `/home/Jordan/.ssh/config'
  Size: 47              Blocks: 1          IO Block: 65536  regular file
Device: 4ade2efdh/1256075005d   Inode: 1970324837237461  Links: 1
Access: (0660/-rw-rw----)  Uid: ( 1001/  Jordan)   Gid: (  513/    None)
Access: 2013-01-12 22:53:32.483072600 -0500
Modify: 2013-01-12 22:53:32.486074700 -0500
Change: 2013-01-12 23:27:33.077476800 -0500
 Birth: 2013-01-12 22:53:32.483072600 -0500

何らかの理由で、権限はまだ0660であるように見えることに注意してください。理由はわかりませんが。これらのアクセス許可をWindowsエクスプローラーで確認しました。私だけがファイルにアクセスでき、「有効なアクセス」をチェックすると、グループUsersはファイルにアクセスできません。

このエラーを修正するにはどうすればよいですか?

また、いくつかの背景:Windows 8Enterprise。ドメインに参加しました(これにより、常にアクセス許可が楽しくなります)。 Cygwinは最新です

6
Earlz

問題は、ファイルがグループ「None」によって所有されていることでした。グループを「ユーザー」に変更した後、権限を自由に変更できました

私はこれを この関連する質問 から理解しました

4
Earlz

ACLを忘れないでください

ACL のファイルを削除して権限をリセットするまで、何も機能しませんでした。

#remove ACLs
setfacl -b ~/.ssh/config

#reset permissions
chmod 0600 ~/.ssh/config

getfaclを使用して、ファイルの現在のACLを表示できます。

getfacl ~/.ssh/config

ACLを削除する前(壊れた):

# owner: Administrators
# group: None
user::rw-
group::---
group:Authenticated Users:rwx
group:SYSTEM:rwx
mask:rwx
other:---

後:(作業中)

# file: config
# owner: myusername
# group: None
user::rw-
group::---
other:---
16
AndrewD

Iv'eは、これで常に修正されることを発見しました。

chown Username:Users ~/.ssh/config
chmod go-rw ~/.ssh/config
7
Scottymeuk

これ 解決策 私を助けました:

cd ~/.ssh
chmod 600 *
2
milkovsky

管理者として実行されているwin7上の私のcygwin64、chmod/chown/setacl/icacls/copyacls /は役に立ちませんでした。これだけが機能しました:ssh -F ~/.ssh/config ...

1
mosh

これらのコマンドは機能するはずです:

chown $USER ~/.ssh/config
chmod 644 ~/.ssh/config

ファイルが別のユーザーによって所有されている場合は、プレフィックスにSudoを付けます。

より多くのファイルが影響を受ける場合は、config*に置き換えてください。

man sshでは、次のように読むことができます。

悪用される可能性があるため、このファイルには厳密な権限が必要です。ユーザーの読み取り/書き込みであり、他のユーザーが書き込みを行うことはできません。問題のグループにユーザーのみが含まれている場合は、グループ書き込み可能である可能性があります。

0
kenorb

これは、Windowsファイルのプロパティの[所有者]タブからWindowsで機能しました。必要なユーザーを所有者として追加し、構成ファイルが存在する場所にcdしてから、ホストにsshします。

0
user547302