Wie deinstalliere / installiere ich cygwin neu, um sshd zu benutzen?

17

Ich habe cygwin / sshd ohne gute Ergebnisse installiert. Ich habe das Verzeichnis c: \ cygwin entfernt, um es neu zu installieren. Ich habe den sshd Administrator-Benutzer von Hand entfernt.

Ich habe den cygwin erneut installiert und dann die 'ssh-host-config -y' ausgeführt. Seltsamerweise fragt es nicht nach einem neuen Benutzer. Und das Verfahren ist sehr kurz.

$ ssh-host-config -y
 * Abfrage: Vorhandene Datei / etc / ssh_config überschreiben? (ja / nein) ja
 Info: Standarddatei / etc / ssh_config erstellen
Abfrage: Vorhandene Datei / etc / sshd_config überschreiben? (ja / nein) ja
 Info: Erstellen der Standarddatei / etc / sshd_config
 Info: Die Berechtigungstrennung ist seit OpenSSH 3.3 standardmäßig auf yes gesetzt.
 Info: Dies erfordert jedoch ein nicht privilegiertes Konto namens 'sshd'.
 Info: Weitere Informationen zur Berechtigungstrennung finden Sie unter / usr / share / doc / openssh
ME.privsep.
* Abfrage: Soll die Privilegientrennung verwendet werden? (ja / nein) ja
*** Info: Aktualisierung der Datei / etc / sshd_config

*** Info: Host-Konfiguration abgeschlossen. Habe Spaß!

Wenn ich 'cygrunsrv -S sshd' ausgeführt habe, erhalte ich eine Fehlermeldung. "Win 32-Fehler 1069: Der Dienst wurde aufgrund eines Anmeldefehlers nicht gestartet". Es ist eine vernünftige Nachricht, da ich den sshd als Benutzer gelöscht habe und der Neuinstallationsvorgang nichts dafür getan hat.

Ich habe festgestellt, dass bei der Deinstallation ein Fehler aufgetreten ist.

F: Wie kann ich das sshd-bezogene Ding perfekt deinstallieren, damit ich es erneut installieren kann?

Prosseek
quelle
Wenn alles andere fehlschlägt: superuser.com/questions/167219/...
ndemou

Antworten:

37

Wenn sshd bereits auf dem System installiert wurde, sollte vor dem Aufrufen von ssh-host-config die folgende Bereinigungsprozedur ausgeführt werden:

# 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
quelle
Beachten Sie, dass die Cygwin-Shell wie bei der Installation von sshd als Administrator ausgeführt werden muss.
f.ardelian
3
Es gab keine Akte /etc/passwdfür mich. Davon abgesehen hat das funktioniert!
John
Sie sagten: "# Löschen Sie alle sshd- oder verwandten Benutzer (z. B. cyg_server) aus / etc / passwd" OK. Aber dann sagten Sie: "# Löschen Sie alle sshd- oder relagierten Benutzer (z. B. cyg_server) vom System." Das scheint sich zu wiederholen. Und dann sagten Sie, die net user befehle unterhalb dieser Zeile. Diese Befehle löschen jedoch keine Benutzer aus dem System. Sie löschen die Dienste.
Barlop
Mit Systembenutzern bezieht er sich auf Benutzer Ihres Windows-PCs. Mit / etc / passwd-Benutzern bezieht er sich auf Benutzer, die in dieser Datei für die Cygwin-Unix-y-Umgebung definiert sind (falls vorhanden). "Diese Befehle" löschen Benutzer: technet.microsoft.com/en-us/library/cc771865(v=ws.11).aspx
ndemou
4

Ich musste drei Schritte ausführen, um es neu zu installieren.

  • Löschen Sie LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ services \ sshd
  • starte 'sc delete sshd'
  • neustarten

Das Problem ist, dass ich mich nicht vom Mac aus bei cygwin anmelden kann. Genau deshalb habe ich versucht, cygwin neu zu installieren.

Ich habe einen weiteren Thread zu diesem Problem erstellt. -> Ich kann cygwin / ssh nicht von einem Mac aus anmelden

Prosseek
quelle
Ich fand meine in ControlSet002 nach einer schnellen Suche nach Schlüsseln passend zu "sshd"
ndemou
1

Schauen Sie sich diesen Link an

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

Der Vorschlag von jemandem aus dem obigen Link scheint eine großartige Checkliste zu sein, erschöpfend, keine Abkürzungen und schnell, und IIRC hat für mich funktioniert.

Entfernen Sie alle ssh-bezogenen Dateien aus / etc.
Entfernen Sie / var / empty.
Entfernen Sie die SSH-Protokolle aus / var / log.
Entfernen Sie die Konten sshd und cyg_server von Ihrem SAM. Löschen Sie beide aus / etc / passwd.
Entfernen Sie den sshd-Dienst. Von vorn anfangen.

Hinweis: Wenn "neu beginnen" angezeigt wird, kann dies ein amerikanischer Hinweis auf einen Neustart sein, in diesem Fall Windows. Wenn ein Dienst entfernt werden soll, müssen oder möchten Sie ihn möglicherweise beenden, bevor Sie ihn entfernen. Es kann sein, dass Sie keinen Neustart benötigen, obwohl Sie können. (Sie könnten also nur neu starten, wenn es immer noch nicht funktioniert). Und wo es heißt "Ihr SAM", das heißt, wo Windows-Benutzer gespeichert werden - sie werden in "Computerverwaltung" angezeigt - Cygwin SSH fügt Benutzer hinzu. Ich sehe dort Cyg_Server- und SSHD-Benutzer. Sie können sie von der GUI oder der Befehlszeile löschen. Wenn Sie einen Dienst erneut anhalten und löschen, können viele Befehle ausgeführt werden. cygrunsrv, sc, net, und von denen habe ich keinen vorteil mit cygrunsrv gesehen. und dieser Jay-TypMeint, sc sei zuverlässiger beim Stoppen oder Löschen. Bei anderen Antworten wurden die Befehle zum Stoppen und Entfernen eines Dienstes behandelt.

barlop
quelle