it-swarm.com.de

Windows CHMOD 600

Ich versuche, mit OpenSSH in Windows eine Verbindung zu Amazon EC2 herzustellen, aber ich muss die Berechtigungen für meine Schlüsseldatei festlegen.

Was ist das Windows-Äquivalent von CHMOD 600?

Ich habe ausgiebig gegoogelt und nur Blogspam gefunden.

BEARBEITEN: Windows 7 unter DOS.

35

Mir ist klar, dass dies etwas alt ist, aber ich habe gerade die Lösung für mich in Windows 7 gefunden. Und es sieht so aus, als ob diese Frage ungelöst blieb. Ich hatte alle die gleichen Fehler, einschließlich Cygwin missing cygintl-2.dll auf chmod, wie Sie in den Kommentaren notiert haben.

Nach umfangreichen Recherchen und ohne Antwort lief ich:

C:\Users\mztriz\.ssh>ssh -v

OpenSSH_3.8.1p1, OpenSSL 0.9.7d 17. März 2004 Verwendung: ssh [-1246AaCfghkNnqsTtVvXxY] [-b Bindungsadresse] [-c Chiffrierspez] [-D Port] [-e Escape-Zeichen] [-F Konfigurationsdatei] [-i Identitätsdatei] [ -L Port: Host: Hostport] [-l Anmeldename] [-m Mac-Spezifikation] [-o Option] [-p Port] [-R Port: Host: Hostport] [Benutzer @] Hostname [Befehl]

Wie Sie sehen können, war die Version von OpenSSH, die ich ausgeführt habe, ziemlich veraltet. Allerdings wusste ich das nicht, weil eine schnelle Google-Suche von OpenSSH for Windows gibt diese alte Version zurück.

Nachdem ich mir die Versionierung angesehen hatte, fand ich OpenSSH für Windows 6.9p1-1 im Download-Bereich dieser Website.

Diese neuere Version von OpenSSH scheint alle von Ihnen genannten Probleme zu beheben.

27
에이바

Ändern Sie die Berechtigungen so, dass:

  • Die Schlüsseldatei erbt nicht vom Container
  • Sie (der Besitzer) haben vollen Zugriff
  • Entfernen Sie Berechtigungseinträge für andere Benutzer (z. B. SYSTEM, Administrator).
  • Fügen Sie einen Eintrag für einen speziellen Benutzer Jeder hinzu und bearbeiten Sie die Berechtigungen für diesen Benutzer, um alle Berechtigungen zu verweigern:
    • Klicken Sie im Windows Explorer mit der rechten Maustaste auf die Datei und wählen Sie "Eigenschaften"> "Sicherheit"> "Erweitert", um das Dialogfeld "Erweiterte Sicherheitseinstellungen" aufzurufen.
    • Klicken Sie auf die Registerkarte Berechtigungen und dann auf Berechtigungen ändern.
    • Klicken Sie auf Hinzufügen, geben Sie Jeder in das Feld Objektname ein, klicken Sie auf Namen überprüfen und klicken Sie dann auf OK.
    • Aktivieren Sie im Dialogfeld Berechtigungseintrag das Kontrollkästchen in der Spalte Verweigern für Vollzugriff.
    • Klicken Sie in jedem Dialogfeld auf OK, um das Dialogfeld mit den Eigenschaften der Datei zu schließen.

Jetzt liest scp die Berechtigungen 0400 und freut sich. Ish.

8
user2309219

Ich habe das gleiche Problem. Die Lösung bestand darin, den Kompatibilitätsmodus von ssh.exe auf Windows XP SP3.

6
Ralfeus

Klicken Sie mit der rechten Maustaste auf die Datei/das Verzeichnis, wählen Sie Eigenschaften und dann Sicherheit. Klicken Sie auf Erweitert und dann auf Bearbeiten. Deaktivieren Sie "Inheritable" und wählen Sie im Dialogfeld "Remove". Entfernen Sie alle verbleibenden expliziten Berechtigungen und fügen Sie Ihrem Benutzernamen die Berechtigung "Vollzugriff" hinzu.

6
Erik

Für Unix & OSX

Recht einfach:

chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/

Für Windows

Wenn es sich bei der Datei um einen symbolischen Windows-Link (NTFS) handelt, funktioniert das oben Genannte nicht. Sie müssen eine reguläre Datei erstellen. Ich bin mir nicht sicher warum.

Wenn Sie nicht über openssh oder cygwin verfügen, können Sie chocolatey verwenden, um es einfach mit chocolatey zu installieren.

choco install cyg-get

Cygwin Terminal öffnen das wurde mit chocolatey installiert und ausgeführt (beachte, dass ssh-keygen erstellt neue Schlüssel):

cyg-get install openssh
ssh-keygen
cd ~/.ssh && Explorer.exe .

Überprüfen Sie, ob Schlüssel vorhanden sind (oder ersetzen Sie sie durch die gewünschten Schlüssel), und führen Sie dann in Cygwin Shell folgende Schritte aus:

chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/

Oder für den seltenen Fall, dass Sie das Paket chocolatey's SSH verwenden (und die Schlüssel daraus generiert haben):

chown -R $USER:users  /cygdrive/c/Users/$USER/.ssh
chmod -R 600 /cygdrive/c/Users/$USER/.ssh
3
Jonathan

Ich bevorzuge Cygwin gegenüber PuTTY und Sie können einfach den Befehl chmod in cygwin ausführen, um die Berechtigung des PEM-Schlüssels auf 400 zu ändern. Dann können Sie loslegen.

[email protected] ~
$ ssh -i /cygdrive/c/Users/myuser/Downloads/mykey.pem [email protected]
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0550 for '/cygdrive/c/Users/myuser/Downloads/mykey.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/cygdrive/c/Users/myuser/Downloads/mykey.pem": bad permissions
Permission denied (publickey).

[email protected] ~
$ chmod
chmod: missing operand
Try 'chmod --help' for more information.

[email protected] ~
$ chmod 400 /cygdrive/c/Users/myuser/Downloads/mykey.pem

[email protected] ~
$ ssh -i /cygdrive/c/Users/myuser/Downloads/meykey.pem [email protected]

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.Amazon.com/Amazon-linux-AMI/2015.09-release-notes/
[[email protected] ~]$ ohyeah I am in!
3
B.Mr.W.

Unter Windows 10 trat das gleiche Problem auf. Es wurde behoben, indem mein Benutzer hinzugefügt und die Berechtigungen Ändern, Lesen und Ausführen, Lesen und Schreiben erteilt wurden. Ich habe alle anderen Benutzer entfernt. So sieht es aus, nachdem alle anderen Berechtigungen entfernt wurden:

enter image description here

3
Erin

Eine der empfohlenen Möglichkeiten für Windows ist heute die Verwendung von PowerShell und Get-Acl und Set-Acl Cmdlets.

Hier ist ein Beispiel, um sicherzustellen, dass nur der aktuelle Benutzer die Berechtigung für einen Ordner und alle darin enthaltenen Dateien hat - ähnlich den Empfehlungen für .ssh Ordner in Unix/Linux/OS X:

# get current ACL of directory
$Acl = Get-Acl -Path $Directory

# remove inheritance ($true) and remove all existing rules ($false)
$Acl.SetAccessRuleProtection($true,$false)

# create new access rule for
# current user
# with FullControl permission
# enable inheritance for folders and files
# enable it for the specified folder as well
# allow these conditions 
$AcessRule = [System.Security.AccessControl.FileSystemAccessRule]::new(
    $env:USERNAME,
    "FullControl",
    ([System.Security.AccessControl.InheritanceFlags]::ContainerInherit -bor [System.Security.AccessControl.InheritanceFlags]::ObjectInherit),
    System.Security.AccessControl.PropagationFlags]::None,
    [System.Security.AccessControl.AccessControlType]::Allow)

# add access rule to empty ACL
$Acl.AddAccessRule($AcessRule)

# activate ACL on folder
Set-Acl -Path $SgwConfigDirectory -AclRule

Weitere Details finden Sie unter

1

Ich habe das gleiche Problem. Die Lösung bestand darin, den Kompatibilitätsmodus von ssh.exe auf Windows XP SP3.

-> Diese Antwort funktioniert für Windows 7

1
tCheang