web-dev-qa-db-fra.com

Erreur "Propriétaire ou autorisations incorrect" lors de l'utilisation du fichier ssh.exe de Cygwin

J'essaie d'utiliser ssh.exe dans Cygwin (sous Windows 7). J'ai copié un fichier config dans c:\cygwin\home\[USERNAME]\.ssh. Lorsque j'exécute ssh (par exemple, ssh -vT [email protected]), l'erreur suivante apparaît:

OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011 Mauvais propriétaire ou autorisations sur /home/[USERNAMEHER/.ssh/config

Comment obtenir ssh pour lire mon fichier de configuration?

29
Ben Scott

Vérifiez les autorisations du fichier config à l'aide de la commande ls de Cygwin:

> c:\cygwin\bin\ls.exe -la c:\cygwin\home\[USERNAME]\.ssh

Ce sera probablement quelque chose comme ça:

total 5
drwxrwxrwt+ 1 Administrators None  0 Oct 20 17:02 .
drwxr-xr-x+ 1 [USERNAME]     None  0 Oct 19 08:15 ..
-rw-------  1 Administrators None 57 Oct 20 16:58 config

Le fichier de configuration doit appartenir à [USERNAME]. Essaye ça:

> c:\cygwin\bin\chown.exe [USERNAME] c:\cygwin\home\[USERNAME]\.ssh\config

ls -la devrait maintenant indiquer le bon propriétaire. Si cela ne fonctionne toujours pas, essayez de réinitialiser le mode (autorisations):

> c:\cygwin\bin\chmod.exe 700 c:\cygwin\home\[USERNAME]\.ssh\config
9
Ben Scott

Après avoir fait comme ci-dessus, j'ai toujours eu ceci:

total 22
drwxrwxr-x+ 1 jl None    0 Sep  9 18:44 .
drwxrwxr-x+ 1 jl None    0 Sep  9 18:44 ..
-rw-rw----  1 jl None  129 Jul  1 14:30 config

et l'erreur sur .ssh/config. J'ai donc exécuté chown sur le dossier .ssh et chmod comme suit:

> chown -R [USERNAME]:users .ssh/

et alors:

> chmod -R 600 .ssh/

et finalement je l'ai fait fonctionner:

total 29
drwxrwxr-x+ 1 jl None     0 Sep  9 18:44 .
drwxrwxrwt+ 1 jl None     0 Sep  9 18:44 ..
drw-------+ 1 jl Users    0 Sep  9 18:44 .ssh

Modifier (pour bash sous Windows 10)

Quand vous obtenez l'erreur ..

Échec d'ajout de l'hôte à la liste des hôtes connus (/PATH_TO_HOME/USERNAME/.ssh/known_hosts).

Assurez-vous que known_hosts est accessible en écriture

$ chmod 755 connus_hôtes

Remarque: je crois que vous devez uniquement définir 600 pour votre clé privée.

Ensuite, essayez de ssh.

Quand vous obtenez..

'Host_IP' (RSA) ajouté en permanence à la liste des hôtes connus.

Vous pouvez remplacer le mode 600

$ chmod 600 abonnés connus

P.S. : Je pense qu’il s’agit d’un bogue sous Windows 8.

46
Joaolvcm

Cette réponse est copiée textuellement de https://superuser.com/a/875934/82032 . C’est la seule réponse qui a fonctionné pour moi après une récente mise à jour de cygwin.

N'oubliez pas les ACL

Rien n'a fonctionné pour moi jusqu'à ce que je dépouille le fichier de ACL et réinitialise les autorisations.

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

#reset permissions
chmod 0600 ~/.ssh/config

Vous pouvez utiliser getfacl pour afficher la liste de contrôle d'accès actuelle dans un fichier.

getfacl ~/.ssh/config

Avant d’avoir supprimé les ACL (cassé):

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

Après le travail)

# file: config
# owner: myusername
# group: None
user::rw-
group::---
other:---
19
gdw2

Pour Unix & OSX

Tout simplement:

chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/

Pour les fenêtres

Si le fichier est un lien symbolique Windows (NTFS), ce qui précède ne fonctionnera pas. Vous devez en faire un fichier régulier. Je ne suis pas sûr pourquoi.

Si vous n'avez pas openssh ou cygwin, utilisez chocolatey pour l'installer facilement.

choco install cyg-get

Ouvrez le terminal Cygwin qui a été installé avec chocolatey et exécutez-le (notez que ssh-keygen crée de nouvelles clés):

cyg-get install openssh
ssh-keygen
cd ~/.ssh && Explorer.exe .

Vérifiez que les clés sont présentes (ou remplacez-les par les clés souhaitées), puis dans Cygwin Shell:

chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/

Ou pour les rares cas où vous utilisez (et avez généré les clés depuis) ​​ le package SSH de chocolate:

chown -R $USER:users  /cygdrive/c/Users/$USER/.ssh
chmod -R 600 /cygdrive/c/Users/$USER/.ssh
9
Jonathan

Remarque importante si votre Windows n'est pas en anglais américain: le nom du groupe "utilisateurs" dépend des paramètres régionaux. Par exemple, si votre Windows est en espagnol, vous devrez changer la propriété des fichiers avec chown $USER:Usuarios *

3
RAKK

Aucune de celles-ci (chmod/chown/icacls/setacl/copyacls/Explorer> sécurité) ne fonctionne sur mon ordinateur cygwin64/win7/admin. Enfin, cela fonctionne avec cygwin64/ssh -F ~/.ssh/config.

1
mosh

Pour ceux qui utilisent noacl dans le chemin avec ~/.ssh dir, la solution simple consiste à créer un lien symbolique NTFS natif:

cmd# mklink c:\home\.ssh c:\opt\cygwin\home\misc\.ssh
symbolic link created for c:\home\.ssh <<===>> c:\opt\cygwin\home\misc\.ssh

Avec noacl, il n’existe aucun moyen de définir des autorisations autres que rwxr-xr-x ou rw-r--r--. Comme la hiérarchie / devrait être sans noacl (ou devrait être avec acl), vous pouvez créer un répertoire ici et y pointer des emplacements problématiques pour les applications de Cygwin.

0
gavenkoa