Ich generiere ein SSH-Schlüsselpaar auf meinem Mac und füge den öffentlichen Schlüssel meinem Ubuntu-Server hinzu (tatsächlich handelt es sich um eine virtuelle Maschine auf meinem Mac). Wenn ich jedoch versuche, mich beim Ubuntu-Server anzumelden, heißt es:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/tudouya/.ssh/vm/vm_id_rsa.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/tudouya/.ssh/vm/vm_id_rsa.pub
Permission denied (publickey,password).
Ich habe viele Möglichkeiten ausprobiert, um dies zu lösen, den Schlüsseldateimodus zu ändern, den Ordnermodus zu ändern, als Antwort auf den Stapelüberlauf, aber es funktioniert nicht.
die Schlüsseldateiberechtigung:
vm dir:
drwxr-xr-x 4 tudouya staff 136 4 29 10:37 vm
key file:
-rw------- 1 tudouya staff 1679 4 29 10:30 vm_id_rsa
-rw-r--r-- 1 tudouya staff 391 4 29 10:30 vm_id_rsa.pub
Bitte geben Sie mir eine Idee ... ============================================
I. Schreiben Sie die Host-Informationen in ssh_config:
Host ubuntuvm
Hostname 10.211.55.17
PreferredAuthentications publickey
IdentityFile /Users/tudouya/.ssh/vm/vm_id_rsa.pub
Ich führe den Befehl "ssh -v ubuntuvm" aus, der Folgendes anzeigt:
ssh -v ubuntuvm
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 103: Applying options for *
debug1: /etc/ssh_config line 175: Applying options for ubuntuvm
debug1: Connecting to 10.211.55.17 [10.211.55.17] port 22.
debug1: Connection established.
debug1: identity file /Users/tudouya/.ssh/vm/vm_id_rsa.pub type 1
debug1: identity file /Users/tudouya/.ssh/vm/vm_id_rsa.pub-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1p1 Ubuntu-8
debug1: match: OpenSSH_6.6.1p1 Ubuntu-8 pat OpenSSH*
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr [email protected] none
debug1: kex: client->server aes128-ctr [email protected] none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 55:6d:4f:0f:23:51:ac:8e:70:01:ec:0e:62:9e:1c:10
debug1: Host '10.211.55.17' is known and matches the RSA host key.
debug1: Found key in /Users/tudouya/.ssh/known_hosts:54
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/tudouya/.ssh/vm/vm_id_rsa.pub
debug1: Server accepts key: pkalg ssh-rsa blen 279
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/tudouya/.ssh/vm/vm_id_rsa.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/tudouya/.ssh/vm/vm_id_rsa.pub
debug1: No more authentication methods to try.
Permission denied (publickey,password).
ssh
permissions
key
土豆 丫
quelle
quelle
-i id_rsa.pub
beim Befehl ssh die Verbindung verwende. Scheint, als würde erzwungen, einen öffentlichen Schlüssel für die ssh-Befehlstruppe zu verwenden, um nach einem Passwort zu fragen (auch wenn die Passphrase leer war, zumindest in meinem Fall)Antworten:
Es scheint, dass Sie versuchen, die falsche Schlüsseldatei zu verwenden. Die Datei mit der Erweiterung ".pub" ist die Datei mit dem öffentlichen Schlüssel. Die entsprechende Datei ohne die Erweiterung ".pub" ist die private Schlüsseldatei. Wenn Sie einen SSH-Client ausführen, um eine Verbindung zu einem Remoteserver herzustellen, müssen Sie dem SSH-Client die private Schlüsseldatei bereitstellen.
Sie haben wahrscheinlich eine Zeile in Ihrer
.ssh/config
Datei (oder/etc/ssh_config
), die so aussieht:Sie müssen die Erweiterung ".pub" aus dem Dateinamen entfernen:
quelle
.pub
) - Datei anstelle der privaten Datei falsch ausgewählt .ssh -i id_ed25519.pub
während derssh -i id_ed25519
Arbeit gearbeitet habeIch schlage vor, Sie tun:
Für mich ist die Arbeit in Ordnung.
quelle
“Permissions 0644 for 'id_rsa.pub' are too open."
und der Schlüssel wurde daher ignoriert. Dies lag wahrscheinlich daran, dass ich die Schlüsseldatei von meinem anderen PC kopiert habe. Durch das Beheben von Berechtigungen wurde das Problem behoben. Vielen Dank!Der Schlüssel sollte für den angemeldeten Benutzer lesbar sein.
Versuche dies:
quelle
ssh-add ~/.ssh/id_rsa.pub
Diese Arbeit für mich. Wenn ich diese Datei erstellt habe, kann ich eine Verbindung zu meiner EC2-Instanz herstellen
quelle
Nachdem ich den folgenden Befehl ausgeführt habe, funktioniert es für mich
quelle
In meinem Fall war es eine PEM-Datei. Es stellt sich heraus, dass dies auch gut ist. Die Berechtigungen der Datei wurden geändert und es hat funktioniert.
chmod 400 ~/.ssh/dev-shared.pem
Vielen Dank für alle, die oben geholfen haben.
quelle
Wenn sich die Schlüssel im Verzeichnis ~ / .ssh befinden, verwenden Sie
chmod 400 ~ / .ssh / id_rsa
Wenn sich die Schlüssel in einem anderen Verzeichnis befinden, verwenden Sie
chmod 400 Verzeichnispfad / id_rsa
Das hat bei mir funktioniert.
quelle
chmod 400 ~/.ssh/id_rsa
das hast du mit @Anirban gemeint. Wie oben angegeben: Die Datei mit der Erweiterung ".pub" ist die Datei mit dem öffentlichen Schlüssel. Die entsprechende Datei ohne die Erweiterung ".pub" ist die private Schlüsseldatei. Wir müssen den privaten schützen.Viele ähnliche Antworten, aber keine Erklärungen ...
Der Fehler wird ausgelöst, weil die Berechtigungen für Dateien mit privatem Schlüssel zu offen sind. Es ist ein Sicherheitsrisiko.
Ändern Sie die Berechtigungen für die private Schlüsseldatei so, dass sie minimal sind (vom Eigentümer schreibgeschützt).
chown <unix-name> <private-key-file>
chmod 400 <private-key-file>
quelle
Was mich betrifft , von der Standardmodus
id_rsa
ist600
, was bedeutet ,readable
undwritable
.Nachdem ich diese Datei in ein Git-Repo verschoben und von einem anderen PC abgerufen habe, wird manchmal der Modus der privaten Schlüsseldatei aktiviert
-rw-r--r--
.Wenn ich das Repo mit ssh ziehe, nachdem ich die private Schlüsseldatei angegeben habe, ist es fehlgeschlagen und hat bei Ihnen Warnungen ausgelöst. Es folgt mein Skript.
Ich behebe dieses Problem, indem ich den Modus auf ändere
600
.quelle
Wenn Sie die Berechtigung 400 erteilen, wird der Schlüssel privat und für Unbekannte nicht zugänglich. Es macht den Schlüssel als geschützten.
quelle
SSH-Schlüssel sollen privat sein, daher ist eine
644
Berechtigung zu offen.Durch Ändern der Berechtigung der Datei zur
600
Verwendunglöst das Problem. Da es den Schlüssel nur dem Benutzer zugänglich macht.
Ref: https://www.linux.com/training-tutorials/understanding-linux-file-permissions/
quelle
chmod 400 /etc/ssh/*
funktioniert bei mir.quelle
Wenn Sie eine .ssh / config-Datei verwenden, versuchen Sie es
dann:
quelle
Diejenigen, die chmod 400 id_rsa.pub vorgeschlagen haben, klangen überhaupt nicht richtig. Es war durchaus möglich, dass op den Pub-Schlüssel anstelle des privaten Schlüssels für ssh verwendete.
Es könnte also so einfach sein
ssh -i /Users/tudouya/.ssh/vm/vm_id_rsa (the private key) user@host
, es zu beheben.--- Update ---
In diesem Artikel https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2 erfahren Sie, wie Sie den SSH-Schlüssel einrichten
quelle
Lauf einfach unten zu deinem Pem
quelle
Ich habe das entfernt
.pub file
und es hat funktioniert.quelle
ssh-keygen -i -f /path/to/private.key > /desired/path/to/public.key
. Es ist also nicht wirklich verloren. :)