J'ai une aperçu de Windows 8 Dev (pas sûr si cela est pertinent, mais je n'ai jamais eu ce tracas sur W7) et j'essaie de cloner un repo git de GitHub.
Le problème est que mon ~/.ssh/id_rsa a 440 autorisations et il doit être 400. J'ai essayé de le chmodding, mais les modifications apportées aux autorisations de l'utilisateur sont reflétées dans les autorisations de groupe (c.-à-d. CHMOD 600 Résultats en 660, etc. ). Cela semble être constant dans tout fichier dans l'ensemble du système de fichiers.
J'ai essayé de jouer avec les ACLS, mais sans être en vain (contrôle total sur mon utilisateur et nier tout le monde a abouti à 000)
voici quelques sorties pour aider:
$ git clone [removed]
Cloning into [removed]...
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0660 for '/home/john/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /home/john/.ssh/id_rsa
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
$ ll ~/.ssh
total 6
-r--r----- 1 john None 1675 Nov 30 19:15 id_rsa
-rw-rw---- 1 john None 411 Nov 30 19:15 id_rsa.pub
-rw-rw-r-- 1 john None 407 Nov 30 18:43 known_hosts
$ chmod -v 400 ~/.ssh/id_rsa
mode of `/home/john/.ssh/id_rsa' changed from 0440 (r--r-----) to 0400 (r--------)
$ ll ~/.ssh
total 6
-r--r----- 1 john None 1675 Nov 30 19:15 id_rsa
-rw-rw---- 1 john None 411 Nov 30 19:15 id_rsa.pub
-rw-rw-r-- 1 john None 407 Nov 30 18:43 known_hosts
$ set | grep CYGWIN
CYGWIN='sbmntsec ntsec server ntea'
Je me rends compte que je pourrais utiliser MSYSGIT ou quelque chose, mais je préférerais pouvoir tout faire d'un seul terminal
EDIT: MSYSGIT ne fonctionne pas non plus pour les mêmes raisons
Il n'y a pas besoin d'un groupe vide.
Lors de l'installation de Cygwin, tous les fichiers appartiennent à aucun groupe. Vous pouvez vérifier cela en faisant un ls -al
. Vous verrez qu'aucun groupe ("Aucun") est sur les fichiers. Il suffit de le changer aux utilisateurs:
chgrp Users *
Après cela, vous pouvez chmod
ce que vous voulez.
J'ai trouvé un piratage spécifique à Cygwin pour se déplacer pour le moment.
Version courte:
Créez simplement un nouveau groupe Windows vide, utilisez CHGRP pour modifier le groupe d'ID_RSA à cela, puis refuser des autorisations de lecture/écriture pour le groupe.
Version longue:
appuyez sur la touche Super et tapez lusrmgr.msc. Utilisez ce manager pour créer un groupe vide, appelé dites Vide_group
Maintenant, nous devons dire à Cygwin à propos de ce nouveau groupe.
mkgroup > /etc/group
Ensuite, nous mettons à jour le groupe de iD_RSA:
chgrp EMPTY_GROUP ~/.ssh/id_rsa
Enfin, allez trouver iD_RSA Dans l'Explorateur Windows, et sous l'onglet Sécurité dans les propriétés, refusez les autorisations de lecture/écriture, et vous devriez être prêt à partir.
Je ne sais pas comment Cygwin a pu gérer cela dans 7 mais pas 8, mais le problème semble que le groupe du fichier ID_RSA n'étant aucun, un groupe qui a toujours un accès en lecture/écriture complète.
En outre, cela ne semble fonctionner que pour le SSH.exe qui vient avec Cygwin, donc si vous souhaitez utiliser SSH avec git, écrasez le SSH.exe à partir de la corbeille dans votre installation GIT avec celui du dossier BIN dans votre installation CYWGIN. .
Je suis sur Windows 8, 64bit. Faire ce qui suit la résout pour moi:
## Start Cygwin Shell
cd .ssh
chmod 600 key-file-name
En Cygwin, tapez ces commandes:
Définissez le bon groupe sur le dossier à domicile:
chgrp -Rv HomeUsers /home
Définissez les autorisations correctes pour les fichiers d'identité SSH:
chmod 600 -Rv ~/.ssh/id*
NB: La réponse acceptée précédente est obsolète. Le nom du groupe est "HomeUners", pas "Utilisateurs", ne peut pas encore commenter.
J'aimerais aussi commenter cette question aussi. J'ai rencontré un problème similaire sur mon PC Windows 7 en utilisant Git via Cygwin.
Lorsque vous essayez de pousser les changements de mon référentiel git local vers un référentiel à distance (à l'aide d'un SSH et d'un clavier pour authentification), Git a jeté un message que les autorisations 66 étaient trop ouvertes pour le fichier
~/.SSH/ID_RSA.
Bien sûr, il est correct pour le SSH-Agent de rejeter cette clé privée ouverte.
J'ai donc essayé les choses mentionnées dans ce fil et autres threads liés à la propriété et au modèle RWX du fichier et du dossier ~/.ssh
chgrp Users ~/.ssh/*
chmod 400 ~/.ssh/id_rsa
Cependant, la même erreur a été jetée encore et encore.
Pour une raison quelconque, il était nécessaire de tuer le processus d'agent SSH en Cygwin et d'exécuter la commande suivante dans la coque de Bourne (Bash).
eval `ssh-agent -s`
N'oubliez pas d'ajouter l'identité souhaitée à l'agent SSH, par ex.
ssh-add ~/.ssh/id_rsa
Alors j'ai répété une commande push valide comme
git Push Origin master
et tout a bien fonctionné.
(Windows 10 Pro)
Étendre ROI Danton's Reshant . Si vous avez installé Windows 8 sur votre ancienne installation de Windows et que votre précédent répertoire Cygwin est toujours en tact, vous devrez d'abord faire quelques autres choses.
Il y aura des comptes d'utilisateur associés au répertoire et aux sous-répertoires/fichiers qui ressemblent à quelque chose comme S-1-2-34-1234567890-1234567890-1234567890-123
Supprimez-les et prenez la propriété avec votre propre compte utilisateur.
Properties
du répertoire CygwinAdvanced
sur l'onglet Security
Change
le propriétaire à vous-même. Vous pouvez taper votre prénom ou votre adresse e-mail associéeRemove
tous les utilisateurs inconnus de la listeEnable Inheritance
OK
en bas, puis Yes
à la boîte de dialogue.De ROI Danton's Reshant :
Lors de l'installation de Cygwin, tous les fichiers appartiennent à aucun groupe. Vous pouvez vérifier cela en faisant un
ls -al
.
.ssh
répertoire - cd ~/.ssh
chgrp Users *
- Cela vous permettra de chmod
les fichiers correctement.chmod 400 *
. 600 travaillera également.Simply ssh sur votre serveur de choix. Dans mon cas, c'est Bitbucket .
Bon résultat:
$ ssh [email protected]
PTY allocation request failed on channel 0
conq: logged in as simonhartcher.
You can use git or hg to connect to Bitbucket. Shell access is disabled.
Connection to bitbucket.org closed.
Mauvais résultat:
$ ssh [email protected]
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for '/home/Simon/.ssh/id_dsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /home/Simon/.ssh/id_dsa
Permission denied (publickey).