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?
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
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.
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:---
Tout simplement:
chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/
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
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 *
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
.
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.