it-swarm.com.de

Verzeichnisberechtigungen für Cygwin SSH (Windows 7)

Ich bin ein Fan von Linux, aber aufgrund schlechter Intel Wireless-Treiber unter Linux musste ich auf Windows 7 umsteigen. Ich habe Cygwin unter Windows installiert und möchte SSH so konfigurieren, dass eine Remote-Verbindung zu meinem Laptop hergestellt werden kann.

Ich habe mit Google gesucht und Informationen für die Installation von openssh-Server unter Windows 7 gefunden. Beim Ausführen von ssh-Host-config wird jedoch die folgende Fehlermeldung angezeigt:

 bala @ bala-PC ~ 
 $ ssh-Host-config 
 yes 
 *** Info: Standarddatei/etc/ssh_config erstellen 
 *** Abfrage: Vorhandene/etc/sshd_config-Datei überschreiben? (yes/no) yes 
 *** Info: Standarddatei/etc/sshd_config erstellen 
 *** Info: Die Berechtigungstrennung ist seit OpenSSH 3.3 standardmäßig auf yes gesetzt. 
 *** Info: Hierfür ist jedoch ein nicht privilegiertes Konto mit dem Namen 'sshd' erforderlich. 
 *** Info: Weitere Informationen zur Privilegientrennung finden Sie unter /usr/share/doc/openssh/READ
 ME.privsep. 
 *** Abfrage: Soll Privilegientrennung verwendet werden? (ja/nein) nein 
 *** Info: Aktualisierung der Datei/etc/sshd_config 
 
 *** Warnung: Für die folgenden Funktionen sind Administratorrechte erforderlich! 
 
 *** 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 Dämon ein: [] 
 *** Info: Unter Windows Server 2003, Windows Vista und höher 
 *** Info: SYSTEM Account kann nicht für andere Benutzer eingerichtet werden - eine Funktion 
 *** Info: sshd benötigt. Sie müssen ein privilegiertes 
 *** Info: Konto haben oder erstellen. Dieses Skript hilft Ihnen dabei. 
 
 *** Warnung: Der Eigentümer und die Administratoren benötigen 
 *** Warnung: müssen .w. Erlaubnis zu /var/run.[.____.owntown*** Warnung: Hier sind die aktuellen Berechtigungen und ACLS: 
 *** Warnung: drwxr-xr-x 1 bala None 0 2010-01-17 22 : 34 /var/run[.____.‹*** Warnung: # Datei: /var/run[.____.‹*** Warnung: # Besitzer: bala 
 *** Warnung: # Gruppe: Keine 
 *** Warnung: user :: rwx 
 *** Warnung: group :: rx 
 *** Warnung: other: rx 
 *** Warnung: mask: rwx 
 *** Warnung: 
 *** Warnung: Bitte ändern Sie den Benutzer- und/oder Gruppenbesitz, 
 *** Warnung: Berechtigungen oder ACLs von /var/run.[.____.[.____.‹*** FEHLER: Problem mit dem Verzeichnis/var/run. Verlassen. 

Die Berechtigungen dieses Ordners werden als schreibgeschützt angezeigt (gilt nur für diesen Ordner) und sind grau markiert. Ich habe versucht, das Häkchen zu entfernen, aber nachdem ich die Eigenschaften erneut geöffnet habe, ist das Kontrollkästchen erneut aktiviert. Gibt es eine Möglichkeit, die Berechtigungen dieses Ordners zu ändern?

15
Boolean

Ich verwende cygwin 1.7 unter Windows 7 x64 und sshd. Ich kann mich nicht erinnern, diesen Fehler bei der Ausführung von sshd_config erhalten zu haben, habe mir aber nur das Verzeichnis/var/run angesehen und es wurde auf 777 gesetzt.

Versuchen Sie dies in einer Cygwin-Shell chmod 777 /var/run

5
karoberts

Es tut mir leid, einen so alten Thread zu entgraben, aber diese Frage tauchte immer dann auf, wenn ich dieses spezielle Problem googelte.

Nach ein paar Monaten fand ich endlich eine Lösung. Beim Einrichten von cygwin wurden die Benutzer- und Gruppenkonten in cygwin nicht ordnungsgemäß erstellt. Die Hauptmethode hierfür ist:

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

Wenn Sie sich mit einem Domänenbenutzer und passwd anmelden, haben Sie folgende Möglichkeiten:

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

Oder wenn Sie ein unglaublich großes Netzwerk wie das meine haben, möchten Sie das vielleicht nicht wirklich. Eine Alternative besteht darin, nur Ihre lokalen Benutzer und die Gruppe sowie die aktuell angemeldeten Benutzer zu verwenden:

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

Danach konnte ich endlich ssh-Host-config korrekt ausführen, um den Dienst zu erstellen.

8
Matthew Flower

Ich hatte selbst große Probleme damit. Ich habe festgestellt, dass die Standardinstallationsschritte gut funktionieren, vorausgesetzt, ich:

  1. Starten Sie die Cygwin-Shell als Administrator mit der Option "Als Administrator ausführen".
  2. Haben Sie die Benutzerkontensteuerung deaktiviert.
  3. Aktivieren Sie den Echtzeit-Virenschutz.

Sobald diese Schritte ausgeführt wurden, sind die Standardinstallationsschritte:

  1. Installieren Sie "openssh" vom Cygwin-Installationsprogramm.
  2. Starten Sie die Cygwin-Shell als Administrator mit der Option "Als Administrator ausführen".
  3. Führen Sie "ssh-Host-config" in der Cygwin-Shell aus.
  4. Privilegientrennung: ja
  5. Neues lokales Konto "sshd": ja
  6. Installieren Sie sshd als Dienst: ja
  7. CYGWIN-Wert: ntsec tty
  8. Anderer Name für "cyg_server": nein
  9. Erstellen Sie ein neues privilegiertes Benutzerkonto "cyg_server": yes
  10. Legen Sie das Kennwort für "cyg_server" fest und bewahren Sie es an einem sicheren Ort auf
  11. net start sshd

Danach scheint auf Windows 7 Professional und Home alles einwandfrei zu funktionieren.

Wenn Sie bereits eine fehlgeschlagene Cygwin sshd-Installation haben, ist es möglicherweise am besten, eine vollständige Deinstallation durchzuführen und neu zu starten.

Hier sind die Anweisungen zur Deinstallation von Cygwin, falls erforderlich: http://cygwin.com/faq/faq.html#faq.setup.uninstall-all

4
Jason Stewart

Ich musste zuerst die defekte Installation entfernen:

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

dann generiere passwd & group wie oben erwähnt:

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

dann rannte ich:

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

und schließlich verschwanden die "setuid failed" -Nachrichten und die Anmeldung funktionierte.

3
dothebart

Stellen Sie in einer Cygwin-Shell sicher, dass Sie Administrator sind.

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

Im Windows Explorer für den Ordner /var:

Eigenschaften.
Sicherheit.
Fügen Sie Gruppenadministratoren mit Vollzugriff auf den Ordner und die Unterordner hinzu.

Für mich geht das.

1
AltAir

Ich konnte das Skript ssh-Host-config nur dann erfolgreich ausführen, wenn ich Cygwin auf einer Festplatte vom Typ NTFS installiert habe. Das Skript ssh-Host-config funktionierte nicht, als Cygwin auf einem Flash-Laufwerk vom Typ exFAT installiert war.

0
Joe Hunt

für Windows-Benutzer führen Sie " Cygwin Terminal " aus, indem Sie mit der rechten Maustaste auf die Verknüpfung klicken und als Administrator ....  enter image description here

Führen Sie nun " ssh-Host-config " vom Cygwin-Terminal aus ... Es wird definitiv funktionieren.

0
Kunal

Ich hatte das gleiche Problem. Ich glaube, mein Problem lag darin, dass ich eine benutzerdefinierte Datei/etc/fstab hatte, in der ich den Stammordner mit der Option "noacl" gemountet habe. So habe ich das Problem gelöst:

  1. Verschieben Sie die benutzerdefinierte Datei/etc/fstab aus dem Weg:

     mv /etc/fstab /etc/fstab.bak
    

    Alternativ können Sie die Datei/etc/fstab bearbeiten und die Option noacl entfernen.

  2. Schließen Sie alle Cygwin-Bash-Fenster und alle anderen Cygwin-Prozesse oder -Dienste. Wenn ein Cygwin-Prozess ausgeführt wird, werden die alten/etc/fstab-Einstellungen beibehalten.

  3. Starten Sie ein neues Cygwin-Bash-Fenster.

  4. Möglicherweise müssen Sie Folgendes ausführen.

    chmod +r /etc/passwd
    chmod o+x /var
    chmod +w /var/run
    
  5. Drücken Sie die Daumen, führen Sie ssh-Host-config aus, und es sollte jetzt fehlerfrei abgeschlossen werden.

  6. Wenn Sie Ihre/etc/fstab in Schritt 1 verschoben haben, können Sie sie jetzt zurück verschieben:

     mv /etc/fstab.bak /etc/fstab
    
  7. Wenn Sie nach der Erstinstallation von Cygwin neue Benutzer erstellt haben, aktualisieren Sie/etc/passwd. Andernfalls können sich diese Benutzer möglicherweise nicht über ssh anmelden:

    mkpasswd -l > /etc/passwd
    
  8. Rufen Sie außerdem die Windows-Firewall auf und lassen Sie C: /cygwin/usr/sbin/sshd.exe und C: /cygwin/usr/sbin/sftp-server.exe zu

0
ahmetsacan