J'ai un aperçu de développement Windows 8 (je ne sais pas si c'est pertinent, mais je n'ai jamais eu ce tracas sur w7) et j'essaie de cloner un dépôt git depuis github.
Le problème est que mon ~ / .ssh / id_rsa a 440 autorisations et il doit être 400. J'ai essayé chmodding mais toutes les modifications sur les autorisations utilisateur sont reflétées dans les autorisations de groupe (par exemple, chmod 600 donne 660, etc. ). Cela semble être constant dans tout fichier de l'ensemble du système de fichiers.
J'ai essayé de jouer avec les ACL mais en vain (le contrôle total sur mon utilisateur et le refus de tout le monde en ont généré 000)
voici quelques sorties pour vous 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 à partir d'un seul terminal
Edit: Msysgit ne fonctionne pas non plus pour les mêmes raisons
ls -l
les autorisations comme000
(----------
) - mais êtes-vous toujours en mesure de lire le fichier, de le fairessh
et de vousgit clone
plaindre à propos de ça? Je suppose quessh
je ne me plaindrai pas des autorisations qui semblent trop strictes. Un rapide coup d'œil au code source tend à le confirmer, mais je ne l'ai pas testé.Réponses:
Il n'y a pas besoin d'un groupe vide.
Lors de l'installation de cygwin, tous les fichiers n'appartiennent à aucun groupe. Vous pouvez vérifier cela en faisant un
ls -al
. Vous verrez qu'aucun groupe ("aucun") ne figure sur les fichiers. Modifiez-le simplement en Utilisateurs:Après cela, vous pouvez
chmod
tout ce que vous voulez.la source
chgrp Users *
ne modifiera que tous les fichiers et dossiers de$PWD
. Pour modifier tous les sous-dossiers / fichiers ainsi que $ PWD, utilisez l'option -R:chgrp -R users *
J'ai trouvé un hack spécifique à Cygwin pour contourner cela pour l'instant.
Version courte:
créez simplement un nouveau groupe Windows vide, utilisez chgrp pour changer le groupe d'id_rsa en cela, puis refusez les autorisations de lecture / écriture pour le groupe.
Version longue:
appuyez sur la touche Super et tapez lusrmgr.msc . Utilisez ce gestionnaire pour créer un groupe vide, appelé par exemple EMPTY_GROUP
Nous devons maintenant parler à Cygwin de ce nouveau groupe.
Ensuite, nous mettons à jour le groupe d' id_rsa :
Enfin, allez trouver id_rsa dans l'Explorateur Windows et sous l'onglet Sécurité dans 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 en 7 mais pas en 8, mais le problème semble provenir du groupe du fichier id_rsa étant None, un groupe qui a toujours un accès complet en lecture / écriture.
En outre, cela semble fonctionner uniquement pour le ssh.exe fourni avec Cygwin, donc si vous souhaitez utiliser par exemple ssh avec git, remplacez le ssh.exe de bin dans votre installation git par celui du dossier bin dans votre installation de Cywgin .
la source
Gagnez 8 + Cygwin
Je suis sur Windows 8, 64 bits. Faire ce qui suit le résout pour moi:
la source
Dans cygwin, tapez ces commandes:
Définissez le bon groupe dans le dossier de départ:
chgrp -Rv HomeUsers /home
Définissez les autorisations appropriées 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 "HomeUsers", pas "Users", ne peut pas encore commenter.
la source
Je voudrais également commenter cette question. J'ai rencontré un problème similaire sur mon PC Windows 7 en utilisant git via Cygwin.
En essayant de pousser les modifications de mon référentiel git local vers un référentiel distant (en utilisant un ssh et une paire de clés pour l'authentification), git a lancé un message indiquant que les autorisations 0660 étaient trop ouvertes pour le fichier
Bien sûr, il est acceptable que l'agent ssh rejette cette clé privée ouverte.
J'ai donc essayé les choses mentionnées dans ce fil et d'autres fils liés à la propriété et au modèle rwx du fichier et du dossier ~ / .ssh
Cependant, la même erreur a été répétée à plusieurs reprises.
Pour une raison quelconque, il était nécessaire de tuer le processus ssh-agent dans cygwin et d'exécuter à nouveau la commande suivante dans le shell bourne (bash).
N'oubliez pas d'ajouter l'identité souhaitée à l'agent ssh, par exemple
Ensuite, j'ai répété une commande push valide comme
et tout fonctionnait bien.
la source
Pour étendre la réponse de Roi Danton . Si vous avez installé Windows 8 sur votre ancienne installation Windows et que votre ancien répertoire cygwin est toujours intact, vous devrez d'abord faire quelques autres choses.
Tout d'abord, prenez possession des répertoires / fichiers Cygwin
Il y aura des comptes d'utilisateurs associés au répertoire et aux sous-répertoires / fichiers qui ressemblent à quelque chose
S-1-2-34-1234567890-1234567890-1234567890-123
Supprimez-les et prenez possession de votre propre compte d'utilisateur.
Properties
annuaire cygwinAdvanced
sur l'Security
ongletChange
le propriétaire pour vous. Vous pouvez saisir votre prénom ou votre adresse e-mail associéeRemove
tous les utilisateurs inconnus de la listeEnable Inheritance
OK
en bas puisYes
dans la boîte de dialogue.Ensuite, dans Cygwin, modifiez le groupe d'utilisateurs de tous les fichiers clés
De la réponse de Roi Danton :
.ssh
répertoire -cd ~/.ssh
chgrp Users *
- cela vous permettra d'chmod
accéder correctement aux fichiers.chmod 400 *
. 600 fonctionnera également.Testez pour voir si cela a fonctionné
Ssh simplement vers votre serveur de choix. Dans mon cas, son Bitbucket .
Bon résultat:
Mauvais résultat:
la source
chgrp Users *
"C: /opscode/chef/embedded/bin/chgrp.exe": groupe invalide `Users '(Windows 10 Pro)
la source