web-dev-qa-db-fra.com

Autorisations de répertoire pour Cygwin SSH (Windows 7)

Je suis un fan de Linux mais en raison de mauvais pilotes Intel sans fil sous Linux, j'ai dû passer à Windows 7. J'ai installé Cygwin sous Windows et je souhaite configurer SSH pour qu'il se connecte à distance à mon ordinateur portable. 

J'ai cherché avec Google et trouvé des informations sur l'installation du serveur openssh sur Windows 7 , mais le message d'erreur suivant s'affiche lors de l'exécution de ssh-Host-config:

 bala @ bala-PC ~ 
 $ ssh-Host-config 
 oui 
 *** Info: Création du fichier/etc/ssh_config par défaut 
 *** Requête: écraser le fichier/etc/sshd_config existant? (oui/non) oui 
 *** Info: création du fichier/etc/sshd_config par défaut 
 *** Info: La séparation des privilèges est définie sur oui par défaut depuis OpenSSH 3.3. 
 *** Info: Cependant, cela nécessite un compte non privilégié appelé 'sshd'. 
 *** Info: Pour plus d'informations sur la séparation des privilèges, lisez /usr/share/doc/openssh/READ
 ME.privsep. 
 *** Query: Faut-il utiliser la séparation des privilèges? (oui/non) non 
 *** Info: Mise à jour du fichier/etc/sshd_config 
 
 *** Avertissement: Les fonctions suivantes nécessitent des privilèges d’administrateur! 
 
 *** Query: Voulez-vous installer sshd en tant que service? 
 *** Query: (dites "non" s'il est déjà installé en tant que service) (oui/non) oui 
 *** Requête: Entrez la valeur de CYGWIN pour le démon: [] 
 *** Info: Sous Windows Server 2003, Windows Vista et les versions ultérieures, le 
 *** Info: le compte SYSTEM ne peut pas être configuré pour les autres utilisateurs - une capacité 
 *** Info: sshd nécessite. Vous devez avoir ou créer un compte privilégié 
 *** Info:. Ce script vous aidera à le faire. 
 
 *** Avertissement: Le propriétaire et les administrateurs ont besoin de 
 *** Avertissement: pour que .w. permission à /var/run.
*** Avertissement: voici les autorisations actuelles et ACLS: 
 *** Avertissement: drwxr-xr-x 1 bala None 0 2010-01-17 22 : 34 /var/run
*** Avertissement: # fichier: /var/run
*** Avertissement: # propriétaire: bala 
 *** Avertissement: # groupe: Aucun 
 *** Avertissement: utilisateur :: rwx 
 *** Avertissement: groupe :: rx 
 *** Avertissement: autre: rx 
 *** Avertissement: masque: rwx 
 *** Avertissement: 
 *** Avertissement: Modifiez le propriétaire de l'utilisateur et/ou du groupe, 
 *** Avertissement: autorisations ou ACL de /var/run.

*** ERREUR: Problème avec le répertoire/var/run. Sortie. 

Les autorisations de ce dossier sont en lecture seule (s'applique uniquement à ce dossier), cochées en gris. J'ai essayé de décocher, mais après avoir rouvert les propriétés, la case est à nouveau cochée. Existe-t-il un moyen de modifier les autorisations de ce dossier?

15
Boolean

J'exécute cygwin 1.7 sur Windows 7 x64 et sshd. Je ne me souviens pas d'avoir eu cette erreur lorsque j'ai exécuté sshd_config, mais je viens de regarder mon répertoire/var/run et il est défini sur 777.

Essayez ceci dans un shell cygwin chmod 777 /var/run

5
karoberts

Désolé de ne pas avoir un aussi vieux fil, mais cette question a toujours été posée lorsque j'ai cherché ce problème dans Google.

Après quelques mois, j'ai finalement trouvé une solution. Lors de la configuration de cygwin, les comptes d'utilisateurs et de groupes ne sont pas correctement créés dans cygwin. La principale façon de faire est d’exécuter:

mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group

Si vous vous connectez à l'aide d'un utilisateur de domaine et de mot de passe, vous pouvez effectuer les opérations suivantes:

mkpasswd -l -d > /etc/passwd 
mkgroup -l -d > /etc/group

Ou, si vous avez un réseau incroyablement grand comme le mien, vous ne voudrez peut-être pas vraiment cela. Une alternative consiste à simplement utiliser vos utilisateurs et votre groupe locaux, ainsi que celui que vous êtes actuellement connecté en tant que:

mkpasswd -l > /etc/passwd
mkpasswd -c >> /etc/passwd
mkgroup -l > /etc/group
mkgroup -c >> /etc/group

Après cela, j’ai enfin pu exécuter ssh-Host-config correctement pour créer le service.

8
Matthew Flower

J'ai eu beaucoup de difficulté avec cela moi-même. J'ai constaté que les étapes d'installation par défaut fonctionnent parfaitement à condition que je:

  1. Démarrez le shell Cygwin en tant qu'utilisateur administratif avec l'option "Exécuter en tant qu'administrateur".
  2. Avez-UAC désactivé.
  3. Désactiver la protection antivirus en temps réel.

Une fois ces étapes effectuées, les étapes d'installation par défaut sont les suivantes:

  1. Installez "openssh" à partir du programme d'installation de Cygwin.
  2. Démarrez le shell Cygwin en tant qu'utilisateur administratif avec l'option "Exécuter en tant qu'administrateur".
  3. Exécutez "ssh-Host-config" à partir du shell Cygwin.
  4. Séparation des privilèges: oui
  5. Nouveau compte local "sshd": oui
  6. Installer sshd en tant que service: oui
  7. Valeur CYGWIN: ntsec tty
  8. Nom différent pour "cyg_server": no
  9. Créer un nouveau compte d'utilisateur privilégié "cyg_server": yes
  10. Définissez le mot de passe "cyg_server" et conservez-le en lieu sûr
  11. net start sshd

Après cela, tout semble fonctionner correctement pour Windows 7 Professionnel et Home.

Si vous avez déjà échoué à l'installation de Cygwin sshd, il peut être préférable de procéder à une désinstallation complète et de recommencer à zéro.

Voici les instructions de désinstallation de Cygwin si vous en avez besoin: http://cygwin.com/faq/faq.html#faq.setup.uninstall-all

4
Jason Stewart

J'ai d'abord dû supprimer l'installation endommagée:

cygrunsrv --remove sshd
rm -rf /var/log/sshd* /etc/ssh_Host* /etc/sshd_config /var/empty

puis générez passwd & group comme mentionné ci-dessus: 

mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group

alors j'ai couru:

ssh-Host-config -y
cygrunsrv --start sshd

et finalement les messages "setuid failed" ont disparu et la connexion a fonctionné.

3
dothebart

Dans un shell cygwin, assurez-vous d'être administrateur, puis:

takeown /F "C:\cygwin" /R
icacls "C:\cygwin" /grant Everyone:\(F\) /T
icacls "C:\cygwin"
chmod 777 -R "c:\cygwin"
2
N0thing

Dans l'Explorateur Windows, pour le dossier /var:

Propriétés.
Sécurité.
Ajoutez des administrateurs de groupe avec un contrôle total sur Le dossier et les sous-dossiers.

Ça marche pour moi.

1
AltAir

Je n'ai pu exécuter le script ssh-Host-config que lorsque j'ai installé Cygwin sur un disque dur de type NTFS. Le script ssh-Host-config ne fonctionnait pas lorsque Cygwin était installé sur un lecteur flash de type exFAT.

0
Joe Hunt

pour les utilisateurs de Windows, exécutez " Cygwin Terminal " en cliquant avec le bouton droit de la souris sur le raccourci et exécutez-le en tant qu'administrateur ....  enter image description here

Maintenant, lancez " ssh-Host-config " à partir du terminal Cygwin ... Cela fonctionnera certainement. 

0
Kunal

J'avais le même problème. Mon problème, je pense, était parce que j'avais un fichier/etc/fstab personnalisé dans lequel je montais le dossier racine avec l'option "noacl". Voici comment j'ai résolu le problème:

  1. Déplacez le fichier/etc/fstab personnalisé hors du chemin:

     mv /etc/fstab /etc/fstab.bak
    

    Vous pouvez également modifier votre fichier/etc/fstab et supprimer l’option noacl.

  2. Fermez toutes les fenêtres bash Cygwin et tous les autres processus ou services Cygwin. Si un processus Cygwin est en cours d'exécution, les choses restent montées avec les anciens paramètres/etc/fstab.

  3. Démarrer une nouvelle fenêtre Cygwin bash.

  4. Vous devrez peut-être exécuter ce qui suit.

    chmod +r /etc/passwd
    chmod o+x /var
    chmod +w /var/run
    
  5. Croisez les doigts, lancez ssh-Host-config, il devrait maintenant se terminer sans erreur.

  6. Si vous avez déplacé votre/etc/fstab à l’étape 1, vous pouvez le ramener maintenant:

     mv /etc/fstab.bak /etc/fstab
    
  7. Si vous avez créé de nouveaux utilisateurs après avoir installé Cygwin pour la première fois, mettez à jour/etc/passwd, sinon ces utilisateurs pourraient ne pas être en mesure de se connecter via ssh:

    mkpasswd -l > /etc/passwd
    
  8. De plus, accédez au Pare-feu Windows et autorisez C: /cygwin/usr/sbin/sshd.exe et C: /cygwin/usr/sbin/sftp-server.exe.

0
ahmetsacan