Ich habe OpenSSH 7.6 in Windows 7 zu Testzwecken installiert. SSH-Client und -Server funktionieren einwandfrei, bis ich über dieses Fenster versucht habe, auf eine meiner AWS EC2-Boxen zuzugreifen.
Anscheinend muss ich die Berechtigung für die private Schlüsseldatei ändern. Dies kann einfach unter Unix / Linux mit chmod
Befehl erfolgen.
Was ist mit Fenstern?
private-key.ppm wird direkt von AWS kopiert und ich denke, die Erlaubnis auch.
C:\>ssh -V
OpenSSH_7.6p1, LibreSSL 2.5.3
C:\>ver
Microsoft Windows [Version 6.1.7601]
C:\>
C:\>ssh [email protected] -i private-key.ppk
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'private-key.ppk' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "private-key.ppk": bad permissions
[email protected]: Permission denied (publickey).
C:\>
C:\>
C:\>ssh [email protected] -i private-key.ppm
Warning: Identity file private-key.ppm not accessible: No such file or directory.
[email protected]: Permission denied (publickey).
C:\>
windows-7
ssh
permissions
Sabrina
quelle
quelle
Antworten:
Suchen Sie die Datei im Windows Explorer, klicken Sie mit der rechten Maustaste darauf und wählen Sie "Eigenschaften". Navigieren Sie zur Registerkarte "Sicherheit" und klicken Sie auf "Erweitert".
Ändern Sie den Eigentümer in Sie, deaktivieren Sie die Vererbung und löschen Sie alle Berechtigungen. Gewähren Sie sich dann "Vollzugriff" und speichern Sie die Berechtigungen. Jetzt beschwert sich SSH nicht mehr über zu offene Dateiberechtigungen.
Es sollte am Ende so aussehen:
quelle
10.0.17134.191
) -Box mit Cygwin verCYGWIN_NT-10.0-WOW 2.3.1(0.291/5/3) 2015-11-14 12:42
und ssh verOpenSSH_for_Windows_7.6p1, LibreSSL 2.6.4
, und 2) Danke! @iBug!Schlüssel dürfen nur für den Benutzer zugänglich sein, für den sie bestimmt sind, und es dürfen keine anderen Konten, Dienste oder Gruppen vorhanden sein.
CLI:
quelle
network service
sodass Cygwin der Meinung ist, dass die Erlaubnis 0770 statt 0700 lautet.network service
kann eine Datei besitzen und es ist eine GruppeNeben der Antwort von ibug. Da ich das Ubuntu-System in Windows verwendet habe, um den Befehl ssh auszuführen. Es hat immer noch nicht funktioniert. So tat ich
und dann hat es geklappt
quelle
sudo
sollte nicht zum Öffnen einer SSH-Sitzung verwendet werden, da dies ein Sicherheitsrisiko darstellt. Zum Öffnen einer SSH-Sitzung sollte das Root-Konto nur auf Einzelbenutzersystemen (dh normalerweise auf Router-Betriebssystemen [OpenWrt, DD-WRT usw.] und anderen eingebetteten Systemen ) verwendet werden (zumindest mir ist dies bekannt) ) . SSH-Schlüssel dürfen nur für den Benutzer zugänglich sein, für den sie bestimmt sind, und es dürfen keine anderen Konten, Dienste oder Gruppen vorhanden sein.Ich hatte das gleiche Problem und es scheint mit der Version von SSH zu tun zu haben, die Sie verwenden.
Wenn ich tippe
Ich bekomme...
Wenn ich
ssh -V
an beiden Orten renne, bekomme ich...beziehungsweise
Also, wenn ich
ssh
aus dem git / bin-Verzeichnis rufe, funktioniert es einwandfrei und beschwert sich nicht über die Berechtigungen, aber wenn ich dieselbe Befehlszeile mit der früheren Installation von SSH laufen lasse, kehrt es damit zurück.ps. Die Berechtigungen für die Datei sind nur der volle Zugriff für mich und sonst nichts.
quelle
DISM
die Option "Zurücksetzen" (die verbessert wurde, um das WinSxS-Verzeichnis zu verwenden) repariert werden muss versus auf das Original zurückgreifeninstall.esd
) .Sie brauchen nur 2 Dinge:
1) Deaktivieren Sie die Vererbung
2) Konvertieren Sie geerbte Berechtigungen in explizite Berechtigungen
3) Benutzergruppe entfernen
4) Sie werden am Ende keine Benutzer haben, die auf private Dateien zugreifen können. Dies sollte ausreichen, um id_rsa hinzuzufügen.
quelle
Ich hatte ein ähnliches Problem, war aber auf der Arbeit und konnte die Dateiberechtigungen auf meinem Arbeitscomputer nicht ändern. Sie müssen WSL installieren und dann Ihren Schlüssel in das versteckte ssh-Verzeichnis in WSL kopieren:
cp <path to your key> ~/.ssh/<name of your key>
Jetzt sollten Sie in der Lage sein, die Berechtigungen normal zu ändern.
sudo chmod 600 ~/.ssh/<your key's name>
Dann ssh mit WSL:
ssh -i ~/.ssh/<name of your key> <username>@<ip address>
quelle
Verwenden Sie den folgenden Befehl für Ihre Taste, er funktioniert unter Windows
quelle
Sie können icacls in Windows anstelle von chmod verwenden, um die Dateiberechtigung anzupassen. Um dem aktuellen Benutzer Leseberechtigung zu erteilen und alles andere zu entfernen,
quelle
Dies ist nur eine geskriptete Version der CLI-Antwort von @ JW0914. Es ist auch mein erstes PowerShell-Skript, daher sind Vorschläge willkommen.
quelle
Verwenden Sie
Mingw-w64
.Infos: http://mingw-w64.org/doku.php
Mit Git für Windows oder direkt herunterladen.
Verfügbar hier: https://github.com/mirror/mingw-w64
Es hat auch andere nützliche Linux-Befehle wie
tar
undgzip
.quelle
Antwort von iBug funktioniert gut! Sie können dem folgen und dieses Problem loswerden.
Es gibt jedoch einige Dinge, die geklärt werden müssen, da ich beim Einrichten der Berechtigungen auf Probleme gestoßen bin, und es dauerte einige Minuten, bis ich das Problem herausgefunden hatte!
Nach der Antwort von iBug entfernen Sie alle Berechtigungen, aber wie stellen Sie die Vollzugriffsberechtigung auf sich selbst ein? Das war der Punkt, an dem ich zuerst feststeckte, da ich nicht wusste, wie ich das machen sollte.
Nach dem Deaktivieren der Vererbung können Sie alle zulässigen Benutzer oder Gruppen löschen.
Sobald Sie damit fertig sind,
Klicken Sie auf,
Add
klicken Sie auf,Set a Principal
geben Sie einSystem
undAdministrators
undyour email addredd
klicken Sie im unteren Feld aufcheck names
.Der Name wird geladen, wenn der Benutzer existiert. Klicken Sie anschließend auf
OK
> TypAllow
> Grundlegende BerechtigungenFull Control
>Okay
Dadurch wird die Vollzugriffsberechtigung für SYSTEM, Administratoren und Ihren Benutzer eingerichtet.
Versuchen Sie anschließend, mit diesem Schlüssel ssh auszuführen. Es sollte jetzt gelöst werden.
Ich hatte das gleiche Problem und löste es mit dieser Methode. Wenn es einen Benutzer oder eine Gruppe mit diesem Namen gibt, wird dieser geladen.
-Screenshots-
Berechtigungseinträge Prinzipal auswählen / Benutzer oder Gruppen auswählen
quelle