it-swarm.com.de

id_rsa.pub-Datei SSH-Fehler: ungültiges Format

Mein Kollege und ich haben versucht, mein Macbook mit ssh in den AWS-Produktionsserver zu bringen, ohne Erfolg, das hat vor einigen Monaten funktioniert, aber als wir es gestern gemacht haben, bekamen wir die folgende Fehlermeldung.

(Ich habe meinen Benutzernamen und Hostnamen in allen folgenden Abschnitten durch einen Platzhalter ersetzt.)

$ ssh titan-data
Load key "/Users/aronlilland/.ssh/id_rsa.pub": invalid format
[email protected]_ip_address: Permission denied (publickey).

Relavante Konfigurationsdateidaten

<!-- config file -->
Host titan-data
    HostName my_ip_address
    User user
    IdentityFile ~/.ssh/id_rsa.pub
    AddKeysToAgent yes

Ich habe jeden erdenklichen Schritt durchlaufen, um es wieder zum Laufen zu bringen. Dies sind die folgenden Schritte, die ich in dieser Reihenfolge ausgeführt habe:

Schritt 1) ​​stellte sicher, dass die PUB-Datei auf dem Server hinzugefügt wurde

dieser Schritt wurde mehrmals wiederholt. Ich habe meine PUB-Datei 4 Mal während dieses Ausscheidungsprozesses neu erstellt. Der Fehler scheint etwas lokales zu sein, nicht etwas vom Server, jemand muss mich korrigieren, wenn ich falsch liege.

Schritt 2) überprüft, ob die folgenden Ordner und Dateien die richtigen Berechtigungen haben

drwx------    6 aronlilland  staff   192B Jan 18 09:41 .ssh/

drwx------    6 aronlilland  staff   192B Jan 18 09:41 ./
drwxr-xr-x+ 104 aronlilland  staff   3.3K Jan 16 16:09 ../
-rw-r--r--    1 aronlilland  staff   114B Jan 18 09:37 config
-rw-------    1 aronlilland  staff   1.7K Jan 18 09:41 id_rsa
[email protected]   1 aronlilland  staff   414B Jan 18 09:41 id_rsa.pub
-rw-r--r--    1 aronlilland  staff   4.6K Jan 18 09:48 known_hosts

dies hatte keine Auswirkung auf die Behebung der Fehlermeldung.

Schritt 3) Ich habe meine id_rsa-Datei und meine id_rsa.pub-Datei gelöscht und eine neue erstellt, wobei mein Kollege die neue .pub-Datei zum Server hinzufügt

  1. zuerst habe ich meine Schlüssel generiert ssh-keygen -t rsa -b 4096 -C "[email protected]", wie in der github-Dokumentation zum Erstellen eines neuen SSH-Schlüssels .__ vorgeschlagen.
    • fügte die neue pub-Datei über meinen Kollegen zum Server hinzu, funktionierte nicht. immer noch den gleichen Fehler bekommen.
  2. Zweitens habe ich nach dem Löschen der alten .pub-Datei ssh-keygen -t rsa ausgeführt, wie in joyent vorgeschlagen, den ssh-Schlüssel manuell in der OSX-Dokumentation zu generieren
    • ich habe immer noch den gleichen Fehler

Schritt 4) ssh mit Homebrew aufgerüstet

dies erfolgte nach den aufgeführten Dokumenten hier von Tim Hilliard

Schritt 5) löschte die IP-Adresse aus meiner "bekannten Hosts" -Datei (greift nach Strohhalmen)

tat nichts, musste nur noch die IP-Adresse erneut bestätigen.

Bearbeiten 1)

In letzter Zeit habe ich vor kurzem eine Fehlermeldung in Form von Fehlermeldungen installiert. Ich habe kürzlich eine andere Version von Python installiert. Es gibt also zwei Versionen von Python auf meinem Computer. Ich bin nicht sicher, ob dies Probleme mit ssh verursachen würde.

$ python -V
Python 2.7.10
$ python3 -V
Python 3.6.4
$ brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. 
Thanks!

Warning: Python is installed at /Library/Frameworks/Python.framework

Homebrew only supports building against the System-provided Python or a
brewed Python. In particular, Pythons installed to /Library can interfere
with other software installs.

Bearbeiten 2)

-v zum Befehl ssh hinzugefügt, den Alfabravo in Kommentaren vorgeschlagen hat

aronlilland:.ssh$ ssh titan-data -v
OpenSSH_7.6p1, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /Users/aronlilland/.ssh/config
debug1: /Users/aronlilland/.ssh/config line 1: Applying options for titan-data
debug1: Reading configuration data /usr/local/etc/ssh/ssh_config
debug1: Connecting to my_ip_address [my_ip_address] port 22.
debug1: Connection established.
debug1: identity file /Users/aronlilland/.ssh/id_rsa.pub type 0
debug1: key_load_public: No such file or directory
debug1: identity file /Users/aronlilland/.ssh/id_rsa.pub-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.2p2 Ubuntu-4ubuntu2.2
debug1: match: OpenSSH_7.2p2 Ubuntu-4ubuntu2.2 pat OpenSSH* compat 0x04000000
debug1: Authenticating to my_ip_address:22 as 'user'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: [email protected]
debug1: kex: Host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server Host key: ecdsa-sha2-nistp256 SHA256:2l8QDc7x/fyzshKaU32jj9MeFtMAccu25MZBFNQuStQ
debug1: Host 'my_ip_address' is known and matches the ECDSA Host key.
debug1: Found key in /Users/aronlilland/.ssh/known_hosts:19
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: RSA SHA256:MuOjm+6gAzaxGr/n/If4LVjk/0H5/VT6zvib9/9C7c8 /Users/aronlilland/.ssh/id_rsa.pub
debug1: Server accepts key: pkalg rsa-sha2-512 blen 279
Load key "/Users/aronlilland/.ssh/id_rsa.pub": invalid format
debug1: No more authentication methods to try.
[email protected]_ip_address: Permission denied (publickey).
aronlilland:.ssh$ 

Bearbeiten 3)

Überprüft, ob die PUB-Datei ein gültiges Format hat

aronlilland:.ssh$ ssh-keygen -l -f id_rsa.pub
2048 SHA256:MuOjm+6gAzaxGr/n/If4LVjk/0H5/VT6zvib9/9C7c8 [email protected] (RSA)
aronlilland:.ssh$ touch foo.txt
aronlilland:.ssh$ ls
config       foo.txt      id_rsa       id_rsa.pub   known_hosts
aronlilland:.ssh$ ssh-keygen -l -f foo.txt
foo.txt is not a public key file.

Bearbeiten 4)

Bestätigung, dass mein id_rsa-Schlüssel und id_rsa.pub gültig sind (ich habe das Ende meines ssh-rsa-Schlüssels abgehackt, es gibt keinen Grund, ihn in das Web aufzunehmen)

aronlilland:.ssh$ ssh-keygen -y -f id_rsa
Enter passphrase: 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQA .......

Bestätigen der Berechtigungen, dass das Aktualisieren von Dateiberechtigungen den Zugriff nicht geändert hat (Ich habe versucht, 0444, 444, 0644, 644 zu verwenden, nur um sicher zu sein)

aronlilland:.ssh$ chmod 0444 id_rsa.pub
aronlilland:.ssh$ ssh titan-data
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0444 for '/Users/aronlilland/.ssh/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.
Load key "/Users/aronlilland/.ssh/id_rsa.pub": bad permissions
[email protected]_ip_address: Permission denied (publickey).

und der andere

aronlilland:.ssh$ chmod 0644 id_rsa.pub
aronlilland:.ssh$ ssh titan-data
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/aronlilland/.ssh/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.
Load key "/Users/aronlilland/.ssh/id_rsa.pub": bad permissions
[email protected]_ip_address: Permission denied (publickey).

zurücksetzen auf chmod 400 id_rsa.pub

Bearbeiten 5)

laufen -vv

aronlilland:.ssh$ chmod 400 id_rsa.pub
aronlilland:.ssh$ ssh titan-data -vv
OpenSSH_7.6p1, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /Users/aronlilland/.ssh/config
debug1: /Users/aronlilland/.ssh/config line 1: Applying options for titan-data
debug1: Reading configuration data /usr/local/etc/ssh/ssh_config
debug2: resolving "my_ip_address" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to my_ip_address [my_ip_address] port 22.
debug1: Connection established.
debug1: identity file /Users/aronlilland/.ssh/id_rsa.pub type 0
debug1: key_load_public: No such file or directory
debug1: identity file /Users/aronlilland/.ssh/id_rsa.pub-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.2p2 Ubuntu-4ubuntu2.2
debug1: match: OpenSSH_7.2p2 Ubuntu-4ubuntu2.2 pat OpenSSH* compat 0x04000000
debug2: fd 3 setting O_NONBLOCK
debug1: Authenticating to my_ip_address:22 as 'user'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug2: local client KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1,ext-info-c
debug2: Host key algorithms: [email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,[email protected],[email protected],ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
debug2: ciphers ctos: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: ciphers stoc: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: MACs ctos: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,[email protected],zlib
debug2: compression stoc: none,[email protected],zlib
debug2: languages ctos: 
debug2: languages stoc: 
debug2: first_kex_follows 0 
debug2: reserved 0 
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
debug2: Host key algorithms: ssh-rsa,rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519
debug2: ciphers ctos: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: ciphers stoc: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: MACs ctos: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,[email protected]
debug2: compression stoc: none,[email protected]
debug2: languages ctos: 
debug2: languages stoc: 
debug2: first_kex_follows 0 
debug2: reserved 0 
debug1: kex: algorithm: [email protected]
debug1: kex: Host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server Host key: ecdsa-sha2-nistp256 SHA256:2l8QDc7x/fyzshKaU32jj9MeFtMAccu25MZBFNQuStQ
debug1: Host 'my_ip_address' is known and matches the ECDSA Host key.
debug1: Found key in /Users/aronlilland/.ssh/known_hosts:19
debug2: set_newkeys: mode 1
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug2: set_newkeys: mode 0
debug1: rekey after 134217728 blocks
debug2: key: /Users/aronlilland/.ssh/id_rsa.pub (0x7fe9ff41c510), explicit
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: RSA SHA256:MuOjm+6gAzaxGr/n/If4LVjk/0H5/VT6zvib9/9C7c8 /Users/aronlilland/.ssh/id_rsa.pub
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg rsa-sha2-512 blen 279
debug2: input_userauth_pk_ok: fp SHA256:MuOjm+6gAzaxGr/n/If4LVjk/0H5/VT6zvib9/9C7c8
Load key "/Users/aronlilland/.ssh/id_rsa.pub": invalid format
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
[email protected]_ip_address: Permission denied (publickey).
9
ochero

Der Konfigurationsparameter IdentityFile sollte auf den privaten Schlüssel zeigen , mit dem der SSH-Client seine Identität gegenüber dem Remote-Server nachweist. (Der Remote-Server sollte dann den Inhalt von id_rsa.pub in seiner authorized_keys-Datei oder einen gleichwertigen Speicherort installiert haben).

Sie sollten den Pfad auf id_rsa, nicht id_rsa.pub, als Argument für IdentityFile in Ihrem ~/.ssh/config setzen.

25
Charles Duffy

In meinem Fall habe ich versucht, mit dem Flag -i auf den Standardschlüssel zu verweisen: ssh -i ~/.ssh/id_rsa.pub [email protected]

Das Entfernen des Schlüssels -i und das einfache Aufrufen von ssh [email protected] hat den Fehler behoben

0
Vinnie James

ihr Fehler liegt darin, dass Sie die -f-Option mit dem öffentlichen Schlüsselnamen verwendet haben ... Sie müssen einen neuen Schlüssel generieren, da Sie Ihren privaten Schlüssel gesendet (und diesen manipuliert haben), indem Sie ihn in -f .ssh/id_rsa.pub speichern.

Der private Schlüssel wird standardmäßig in .ssh/id_rsa und der öffentliche Schlüssel in .ssh/id_rsa.pub gespeichert. Wenn Sie .ssh/id_rsa.pub als Ort Ihres privaten Schlüssels angeben, haben Sie wahrscheinlich die Öffentlichkeit in .ssh/id_rsa.pub.pub (CHECK THIS). Sie haben jedoch jedenfalls Ihren privaten Schlüssel über das Netzwerk gesendet, sodass er gefährdet ist und einen neuen Schlüssel generieren sollte Paar.

Beim nächsten Mal können Sie den für die Schlüsseldateinamen vorgeschlagenen Standardeinstellungen vertrauen oder die richtigen (ohne die Erweiterung .pub) für die Schlüsseldatei verwenden.

0
Luis Colorado