Betriebssystem: Windows 7 x64
Cygwin: 1.7.15-1
OpenSSH: 6.0p1-1
Ich versuche, einen SSH-Server unter Windows 7 zu installieren. Das Tutorial, das ich dazu befolge, finden Sie hier:http://www.howtogeek.com/howto/41560/how-to-get-ssh-command-line-access-to-windows-7-using-cygwin/
Das Problem ist, dass ich beim Ausführen des net start sshd
Befehls die folgende Ausgabe erhalte:
Der CYGWIN-SSHD-Dienst wird gestartet. Der CYGWIN-SSHD-Dienst konnte nicht gestartet werden.Der Dienst hat keinen Fehler gemeldet.
Weitere Hilfe erhalten Sie, indem Sie NET HELPMSG 3534 eingeben.
Hier ist die vollständige Ausgabe des Setups:
AdminUser@DieserComputer ~ $ ssh-host-konfiguration *** Info: /etc/ssh_host_key wird generiert *** Info: /etc/ssh_host_rsa_key wird generiert *** Info: /etc/ssh_host_dsa_key wird generiert *** Info: /etc/ssh_host_ecdsa_key wird generiert *** Info: Standarddatei /etc/ssh_config erstellen *** Info: Standarddatei /etc/sshd_config erstellen *** Info: Die Rechtetrennung ist seit OpenSSH 3.3 standardmäßig auf „Ja“ eingestellt. *** Info: Hierzu ist jedoch ein nicht privilegiertes Konto namens „sshd“ erforderlich. *** Info: Weitere Informationen zur Berechtigungstrennung finden Sie unter /usr/share/doc/openssh/README.privsep. *** Abfrage: Soll eine Privilegientrennung verwendet werden? (ja/nein) ja *** Info: Beachten Sie, dass zum Anlegen eines neuen Benutzers das aktuelle Konto *** Info: Administratorrechte. Sollte dieses Skript versuchen, eine *** Abfrage: neues lokales Konto 'sshd'? (ja/nein) ja *** Info: Datei /etc/sshd_config wird aktualisiert *** Abfrage: Möchten Sie sshd als Dienst installieren? *** Abfrage: (Sagen Sie „nein“, wenn es bereits als Dienst installiert ist) (ja/nein) ja *** Abfrage: Geben Sie den Wert von CYGWIN für den Daemon ein: [] *** Info: Unter Windows Server 2003, Windows Vista und höher ist die *** Info: Das SYSTEM-Konto kann nicht für andere Benutzer eine UID festlegen – eine Fähigkeit *** Info: sshd erfordert. Sie müssen einen privilegierten *** Info: Konto. Dieses Skript hilft Ihnen dabei. *** Info: Sie scheinen Windows XP 64bit, Windows 2003 Server auszuführen, *** Info: oder später. Auf diesen Systemen ist es nicht möglich, das LocalSystem *** Info: Konto für Dienste, die die Benutzer-ID ändern können, ohne *** Info: explizites Passwort (wie passwortlose Logins [zB öffentlicher Schlüssel *** Info: Authentifizierung] über sshd). *** Info: Wenn Sie diese Funktion aktivieren möchten, müssen Sie *** Info: ein neues Konto mit Sonderrechten (es sei denn, ein ähnliches Konto *** Info: existiert bereits). Dieses Konto wird dann verwendet, um diese speziellen *** Info: Server. *** Info: Beachten Sie, dass das Anlegen eines neuen Benutzers voraussetzt, dass das aktuelle Konto *** Info: verfügt selbst über Administratorrechte. *** Info: Es konnte kein privilegiertes Konto gefunden werden. *** Info: Dieses Skript plant die Verwendung von „cyg_server“. *** Info: „cyg_server“ wird nur von registrierten Diensten verwendet. *** Abfrage: Möchten Sie einen anderen Namen verwenden? (ja/nein) nein *** Abfrage: Neues privilegiertes Benutzerkonto „cyg_server“ erstellen? (ja/nein) ja *** Info: Bitte geben Sie ein Passwort für den neuen Benutzer cyg_server ein. Bitte achten Sie darauf *** Info: dass dieses Passwort den auf Ihrem System vorgegebenen Passwortregeln entspricht. *** Info: Wenn Sie kein Passwort eingeben, wird die Konfiguration beendet. *** Abfrage: Bitte geben Sie das Passwort ein: *** Abfrage: Erneut eingeben: *** Info: Der Benutzer „cyg_server“ wurde mit dem Passwort „[ZENSIERT]“ erstellt. *** Info: Wenn Sie das Passwort ändern, denken Sie bitte daran, auch das *** Info: Passwort für die installierten Dienste, die Sie verwenden (oder bald verwenden werden) *** Info: das „cyg_server“-Konto. *** Info: Beachten Sie auch, dass der Benutzer 'cyg_server' Leseberechtigungen benötigt *** Info: zu allen relevanten Dateien des Benutzers für die Dienste, die als „cyg_server“ ausgeführt werden. *** Info: Insbesondere für den SSHD-Server alle .ssh/authorized_keys der Benutzer *** Info: Dateien müssen über die entsprechenden Berechtigungen verfügen, um den öffentlichen Schlüssel zuzulassen *** Info: Authentifizierung. Das (erneute) Ausführen von ssh-user-config für jeden Benutzer setzt *** Info: diese Berechtigungen korrekt. [Ähnliche Einschränkungen gelten für *** Info: Instanz, für .rhosts-Dateien, wenn der rshd-Server läuft usw.]. *** Info: Der SSHD-Dienst wurde unter „cyg_server“ installiert. *** Info: Konto. Um den Dienst jetzt zu starten, rufen Sie `net start sshd' auf oder *** Info: `cygrunsrv -S sshd'. Andernfalls wird es automatisch gestartet *** Info: nach dem nächsten Neustart. *** Info: Host-Konfiguration abgeschlossen. Viel Spaß! AdminUser@DieserComputer ~ $ net start sshd Der CYGWIN-SSHD-Dienst wird gestartet. Der CYGWIN-SSHD-Dienst konnte nicht gestartet werden. Der Dienst hat keinen Fehler gemeldet. Weitere Hilfe erhalten Sie, indem Sie NET HELPMSG 3534 eingeben.
Beachten Sie, dass ich in dieser Zeile *** Query: Enter the value of CYGWIN for the daemon: []
nichts eingegeben habe. In Tutorials wird oft empfohlen, hier ntsec
oder zu verwenden ntsec tty
, aber diese Optionen wurden aus der neuesten Version von OpenSSH entfernt. Ich habe trotzdem versucht, sie zu verwenden, und das Ergebnis ist dasselbe.
Die Datei /var/log/sshd.log
ist leer. Wenn ich versuche, einfach den Befehl auszuführen, /usr/sbin/sshd
erhalte ich die Ausgabe /var/empty must be owned by root and not group or world-writable.
. Das Verzeichnis /var/empty hat die folgenden Berechtigungen: drwxr-xr-x+ 1 cyg_server root 0 May 29 15:28 empty
. Google-Suchen nach diesem Fehler haben keine funktionierenden Lösungen ergeben. Eine Person scheint das Problem mithilfe des Befehls gelöst zu haben, chown SYSTEM /var/empty
aber in meinem Fall hat das das Problem nicht behoben.
Antwort1
Versuchen Sie, die Privilegientrennung zu deaktivieren in/etc/sshd_config
Antwort2
Unter Cygwin /var/empty
mussdurch den Benutzer ausgeführtsshd
. (Es sei denn, Sie deaktivieren die Berechtigungstrennung!)
Auseine hilfreiche E-Mail an die Cygwin-Mailingliste im Jahr 2012 von Corinna Vinschen
Normalerweise prüft sshd, ob /var/empty der UID 0 gehört. Unter Cygwin, wo es normalerweise keinen Benutzer mit UID 0 gibt,Der Code wurde geändert, um zu testen, ob /var/empty dem Benutzer gehört, der sshd ausführt.. Wenn Sie also sshd auf der Befehlszeile starten, müssen Sie /var/empty auf das aktuelle Benutzerkonto chownen. Dasselbe gilt für die ssh-bezogenen Dateien unter /etc. Die Fehlermeldung ist die Standard-Upstream-Fehlermeldung. Sie wurde für Cygwin nicht geändert, um das Cygwin-bezogene Upstream-Patchset klein zu halten.
Antwort3
In meinem Fall gab es einen Konflikt mit einem anderen Dienst. Ich habe die Bitvise-Testversion installiert, um das Hosten eines SSH-Servers auszuprobieren.
Wenn ich Cygwin OpenSSH installiert habe, muss ich den Bitvise-Dienst herunterfahren, um Cygwin sshd starten zu können.