it-swarm.com.de

SSH-Schlüsselauthentifizierung am falschen Ort?

Ich bin ziemlich neu in der Linux-Welt und richte einen Ubuntu-Server 16.04 ein.

Ich konnte Schlüssel mit ssh-keygen generieren und habe den Schlüssel in /home/ther4nd0moo/.ssh/id_rsa gespeichert.

Ich habe dann ssh-copy-id [email protected]_ip verwendet und sichergestellt, dass sich die Datei "authorized_keys" an der richtigen Stelle befindet.

Wenn ich ssh -v [email protected]_ip auf einem anderen Computer verwende, tauchen einige seltsame Dinge auf (zumindest für mich)

OpenSSH_7.2p2 Ubuntu-4ubuntu2.1, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 10.0.0.189 [10.0.0.189] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /home/edgar/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/edgar/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/edgar/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/edgar/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/edgar/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/edgar/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/edgar/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/edgar/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.2p2 Ubuntu-4ubuntu2.1
debug1: match: OpenSSH_7.2p2 Ubuntu-4ubuntu2.1 pat OpenSSH* compat 0x04000000
debug1: Authenticating to 10.0.0.189:22 as 'need206'
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:YzQwUoOherHwxOOhzEhue7ecx+OMi0FpmIcSONi8X1o
debug1: Host '10.0.0.189' is known and matches the ECDSA Host key.
debug1: Found key in /home/edgar/.ssh/known_hosts:3
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS received
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: Trying private key: /home/edgar/.ssh/id_rsa
debug1: Trying private key: /home/edgar/.ssh/id_dsa
debug1: Trying private key: /home/edgar/.ssh/id_ecdsa
debug1: Trying private key: /home/edgar/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).

Was mich nervt, ist, wie nach der Identitätsdatei und dem privaten Schlüssel unter /home/edgar/ gesucht wird (edgar ist mein Name, den ich bei der Installation des Servers eingegeben habe). Um dieses Problem zu lösen, haben Sie den Schlüsselinhalt von /home/ther4nd0mmoo/.ssh kopiert und den Ordner /home/edgar/.ssh erstellt. Wahrscheinlich wird deshalb die Meldung Found key in /home/edgar/.ssh/known_hosts:3 angezeigt, aber ich kann immer noch nicht auf den Server zugreifen.

Ich habe versucht, ssh -i /home/ther4nd0moo/.ssh/id_rsa [email protected]_ip und mein Terminal sagt, dass es not accessible: No such file or directory ist

Mache ich etwas falsch?

2
ther4nd0moo

SSH-Schlüssel funktionieren, indem ein privater Schlüssel auf Ihrem lokalen Computer und ein entsprechender öffentlicher Schlüssel auf dem Remote-Computer vorhanden sind.

Also - als Sie ssh-keygen ausgeführt haben, haben Sie zwei Schlüssel erstellt: den privaten (~/.ssh/id_rsa) und den öffentlichen (~/.ssh/id_rsa.pub).

Sie müssen den Inhalt der Pubic-Schlüsseldatei (~/.ssh/id_rsa.pub) von Ihrem lokalen Computer in die Datei ~/.ssh/authorizedkeys auf dem Remote-Computer kopieren. Füge es einfach in eine neue Zeile ein.

Wenn Sie sich von einem ANDEREN lokalen Computer auf Ihrem Remote-Computer anmelden, müssen Sie entweder die Datei id_rsa vom ursprünglichen Computer auf den zweiten lokalen Computer kopieren oder (besser) ein anderes privates/öffentliches Schlüsselpaar für den zweiten erstellen Lokaler Computer, und kopieren Sie dann den öffentlichen Schlüssel für den 2. Computer auf Ihren Remote-Server.

Der Remote-Server kann eine beliebige Anzahl öffentlicher Schlüssel in ~/.ssh/authorizedkeys haben, und es ist (meiner Meinung nach) eine gute Praxis, für jeden Ihrer lokalen Computer ein anderes Schlüsselpaar zu haben.

Wenn Sie von einem REMOTE-Computer auf einen anderen Computer sshen müssen (z. B. wenn Sie von einem Remote-Computer auf Ihren Laptop sshen müssen), müssen Sie den REMOTE-Computer mit einem eigenen privaten/öffentlichen Schlüsselpaar einrichten und die Remote kopieren Öffentlicher Schlüssel des Computers für die ~/.ssh/authorizedkeys -Datei des Laptops.

Stellen Sie sich das so vor: Jeder Computer kann einen Türschlüssel (den privaten Schlüssel) haben, und jeder andere Computer verfügt über ein Schlüsselloch (die Datei mit den autorisierten Schlüsseln). Wenn ein anderer Computer über eine Schlüssellocheinstellung verfügt, in die Ihr Schlüssel passt, haben Sie Zugriff. Um in umgekehrter Richtung zu arbeiten, müssen Sie weitere Schlüssel- und Schlüssellocheinstellungen vornehmen. (wahrscheinlich nicht sehr gut erklärt - aber ich hoffe es hilft!).

Der Befehl ssh-copy-id ist im Grunde genommen nur ein Kurzbefehl zum Speichern, wenn Sie ihn manuell ausführen.

Ich persönlich bevorzuge es, den öffentlichen Schlüssel manuell zu kopieren, nur weil ich es mag, Dinge auf die harte Tour zu machen. ;)

3
JamesBB