Comment désinstaller / réinstaller cygwin pour utiliser le sshd?

17

J'ai installé cygwin / sshd sans de bons résultats. J'ai supprimé le répertoire c: \ cygwin pour réinstaller. J'ai supprimé l'utilisateur administrateur sshd à la main.

J'ai à nouveau réinstallé le cygwin, puis exécuté le 'ssh-host-config -y'. Étrangement, cela ne demande rien sur la création d'un nouvel utilisateur. Et la procédure est vraiment courte.

$ ssh-host-config -y
 * Requête: remplacer le fichier / etc / ssh_config existant? (oui / non) oui
 Info: Création du fichier / etc / ssh_config par défaut
Requête: remplacer 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
ME.privsep.
* Requête: la séparation des privilèges doit-elle être utilisée? (oui / non) oui
*** Info: Mise à jour du fichier / etc / sshd_config

*** Info: la configuration de l'hôte est terminée. S'amuser!

Lorsque j'ai exécuté «cygrunsrv -S sshd», j'obtiens une erreur. "Win 32 erreur 1069: le service n'a pas démarré en raison d'un échec de connexion". C'est un message raisonnable, car j'ai supprimé le sshd en tant qu'utilisateur, et la procédure de réinstallation n'a plus rien fait pour cela.

Je vois que je me suis trompé de désinstallation.

Q: Comment puis-je désinstaller parfaitement la chose liée à sshd pour pouvoir la réinstaller à nouveau?

prosseek
la source
Si tout le reste échoue: superuser.com/questions/167219/…
ndemou

Réponses:

37

Si sshd a déjà été installé sur le système, la procédure de nettoyage suivante doit être effectuée avant d'appeler ssh-host-config:

# Remove sshd service
cygrunsrv --stop sshd
cygrunsrv --remove sshd

# Delete any sshd or related users (such as cyg_server) from /etc/passwd
#   (use your favorite editor)

# Delete any sshd or related users (such as cyg_server) from the system
net user sshd /delete
net user cyg_server /delete
Kentgrav
la source
Notez que, comme lors de l'installation de sshd, le shell cygwin doit être exécuté en tant qu'administrateur.
f.ardelian
3
Il n'y avait pas de dossier /etc/passwdpour moi. A part ça, ça a marché!
John
Vous avez dit "# Supprimez tout sshd ou les utilisateurs associés (tels que cyg_server) de / etc / passwd" OK. Mais ensuite vous avez dit "# Supprimez tous les utilisateurs sshd ou relaged (tels que cyg_server) du système" Cela semble se répéter. Et puis vous avez dit les commandes de l'utilisateur net sous cette ligne. Mais ces commandes ne suppriment pas les utilisateurs du système. Ils suppriment les services.
barlop
Avec les utilisateurs du système, il fait référence aux utilisateurs de votre PC Windows. Avec / etc / passwd, il fait référence aux utilisateurs définis dans ce fichier pour l'environnement cygwin Unix-y (le cas échéant). "Ces commandes" suppriment les utilisateurs: technet.microsoft.com/en-us/library/cc771865(v=ws.11).aspx
ndemou
4

J'ai dû faire trois étapes pour le réinstaller.

  • supprimer LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ services \ sshd
  • exécutez 'sc delete sshd'
  • redémarrer

Le problème est que je ne peux pas me connecter au cygwin à partir du Mac, c'est la raison exacte pour laquelle j'ai essayé de réinstaller le cygwin.

J'ai fait un autre fil sur ce problème. -> Je ne peux pas me connecter à cygwin / ssh depuis Mac

prosseek
la source
J'ai trouvé le mien dans ControlSet002 après une recherche rapide des clés correspondant à "sshd"
ndemou
1

En regardant ce lien

https://www.cygwin.com/ml/cygwin/2014-03/msg00315.html

La suggestion de quelqu'un à partir du lien ci-dessus semble être une excellente liste de contrôle, exhaustive, sans raccourcis et rapide, et l'IIRC a fonctionné pour moi.

Supprimez tous les fichiers liés à ssh de / etc.
Supprimez / var / empty.
Supprimez les journaux ssh de / var / log.
Supprimez les comptes sshd et cyg_server de votre SAM. Supprimez les deux depuis / etc / passwd.
Supprimez le service sshd. Recommencer.

Remarque - Là où il est dit "recommencer", cela pourrait être un discours américain pour redémarrer, dans ce cas, Windows. Là où il est dit de supprimer un service, vous pouvez avoir besoin ou vouloir arrêter le service avant de le supprimer. Il se peut que vous n'ayez pas besoin d'un redémarrage, bien que vous le puissiez. (vous ne pouvez donc redémarrer que si cela ne fonctionne toujours pas). Et là où il est écrit "votre SAM", c'est-à-dire où il stocke les utilisateurs Windows - ils sont affichés dans la "gestion de l'ordinateur" - cygwin ssh y ajoute des utilisateurs, je vois des utilisateurs cyg_server et sshd là-bas, vous pouvez les supprimer de gui ou de la ligne de commande. Et pour arrêter et supprimer un service, de nombreuses commandes peuvent le faire. cygrunsrv, sc, net, et parmi ceux-ci, je n'ai pas vu d'avantage avec cygrunsrv. et ce geaipense que sc est plus fiable pour les arrêter ou les supprimer, c'est peut-être le cas. D'autres réponses ont couvert les commandes d'arrêt et de suppression d'un service.

barlop
la source