Wie füge ich einen privaten Schlüssel zu SSH hinzu?

7

Ich habe ein Paar private / Pub-RSA-Schlüssel generiert. Der öffentliche Schlüssel wird dem Remote-Server hinzugefügt. Wenn ich jedoch über ssh über -sh eine Verbindung zum Remote-Server herstelle, kann ich feststellen, dass mein lokaler Client den privaten Schlüssel in ~ / .ssh nicht verwendet. Wie kann ich den privaten Schlüssel hinzufügen, um sicherzustellen, dass er für die Authentifizierung verwendet wird?

Ihre ausführliche Ausgabe auf ssh auth:

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /home/nubela/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Trying private key: /home/nubela/.ssh/identity
debug1: Trying private key: /home/nubela/.ssh/id_dsa
debug1: No more authentication methods to try.

Hier ist das ls-al von meinem ~ / .ssh

[nubela@localhost .ssh]$ pwd
/home/nubela/.ssh
[nubela@localhost .ssh]$ ls -al
total 36
drwx------  2 nubela guest 4096 2009-11-11 12:28 ./
drwx--x--x 70 nubela guest 4096 2009-11-11 00:53 ../
-rw-r--r--  1 nubela guest 1486 2009-11-11 12:25 2.ppk
-rw-------  1 nubela guest  604 2009-06-09 04:37 authorized_keys2
-rw-------  1 nubela guest 1743 2009-11-03 23:48 id_rsa
-rw-r--r--  1 nubela guest  398 2009-11-03 23:48 id_rsa.pub
-rw-r--r--  1 nubela guest 2803 2009-11-11 13:34 known_hosts
-rw-------  1 nubela guest 1743 2009-11-11 12:21 upperstorey
-rw-------  1 nubela guest  398 2009-11-11 12:21 upperstorey.pub

upperstorey ist der private Schlüssel, mit dem der ssh-Client verwendet werden soll. Wie kann ich es hinzufügen?

PS: Die Verwendung von -i / path / to / privatekey funktioniert

Vielen Dank!


quelle

Antworten:

9

Wenn Sie also eine Verbindung zum Host herstellen remotehost, möchten Sie den im Obergeschoss enthaltenen Schlüssel verwenden?

Sie müssen ssh anweisen, es explizit zu verwenden. Am einfachsten ist es, wenn Sie Ihrer ~ / .ssh / config den folgenden Block hinzufügen:

Host remotehost
    IdentityFile ~/.ssh/upperstorey

Dies weist Sie sshan, diesen Schlüssel zu verwenden, wenn Sie eine Verbindung zu diesem Host herstellen. Fügen Sie der Host-Zeile Aliase hinzu (z. B. remotehost, remotehost.remotedomain.com usw.)

MikeyB
quelle
Es ist erwähnenswert, dass die Option '-i' die Datei an Ihren Schlüsselsuchpfad anfügt, anstatt diesen Schlüssel explizit zu verwenden. Ich würde annehmen, dass die 'IdentifyFile'-Direktive genauso funktioniert. Zum Glück spielt diese Unterscheidung in 99,9999% der Fälle keine Rolle.
Scott Pack
Tests mit 'ssh -v -i Identityfile Host' scheinen darauf hinzudeuten, dass nur diese Datei verwendet wird. Es wird mehr als eins verwendet, wenn mehr als eins explizit angegeben ist. YMMV.
MikeyB