Verwenden des SSH-Schlüssels für die Verbindung, jedoch ohne Option -i

2

Ich arbeite mit serverals-Hosts und möchte das Kennwort nicht jedes Mal angeben, wenn ich eine Verbindung zu einem Host herstellen möchte. Dann habe ich einen Schlüssel generiert mit:

Enter file in which to save the key (/home/robe/.ssh/id_rsa): my_key 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in my_key.
Your public key has been saved in my_key.pub.
The key fingerprint is:
e6:d9:a3:85:38:b1:b2:a9:4d:3b:c1:33:65:df:57:25 robe@computer
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|              E .|
|               o |
|      o       .  |
|   . o..S.   .   |
|    =  *.+. .    |
|    o++ + +.     |
|   o.= . o .     |
|  ..=.  .        |
+-----------------+

Dann kopiere ich die Datei my_key.pub auf jedem Host in die Datei authorized_keys und kann eine Verbindung herstellen mit:

ssh -i /path/to/my_key  user@host

Aber hier ist mein Problem, ich möchte ohne Angabe des Schlüssels verbinden. Ich werde gerne einen Weg finden, den ich laufe:

ssh user@host

Hinweis : Ich möchte meine Standardschlüssel id_rsa und id_rsa.pub behalten. Der my_key-Schlüssel ist eine alternative Option zum Verwalten anderer Hosts.

Robert
quelle

Antworten:

8

Sie suchen nach der ~/.ssh/configKonfigurationsdatei. Fügen Sie beispielsweise diesen Eintrag in diese Datei ein.

Host host
    HostName host.example.com
    User johndoe
    IdentityFile ~/.ssh/host.key

Jetzt können Sie tippen

ssh host

Und ssh verwendet automatisch den durch den IdentityFileParameter angegebenen Benutzernamen und Schlüssel . Daher ist dieser Befehl äquivalent zu:

ssh [email protected] -i ~/.ssh/host.key

Alle Konfigurationsdetails für diese Datei finden Sie unter http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man5/ssh_config.5 .

Jcs
quelle
1

Wenn Sie in * nix sind, können Sie ssh-agent / ssh-add verwenden, um Ihre Identitäten für Ihre Sitzung im Speicher abzulegen.

  1. Führen Sie ssh-agent von einem Terminal aus

user @ machine $ ssh-agent bash

Dadurch wird ein Bash-Prozess erstellt, bei dem ssh-agent ausgeführt wird

Wenn Sie keinen weiteren Prozess erstellen möchten, dann

user @ machine $ ssh-agent -s

SSH_AUTH_SOCK = / tmp / ssh-shtzxe4347 / agent.4347; export SSH_AUTH_SOCK; SSH_AGENT_PID = 4348; export SSH_AGENT_PID; Echo Agent PID 4348;

Sie müssen die fett gedruckten Befehle ausführen, um Ihre Umgebungsvariablen zu aktualisieren.

2.Nach einem der vorherigen Schritte

user @ machine $ ssh-add

Um Ihre .ssh / id_rsa zum Agenten hinzuzufügen, werden Sie aufgefordert, ein Kennwort für Ihren Schlüssel einzugeben

http://linux.die.net/man/1/ssh-agent http://linux.die.net/man/1/ssh-add


Moderne Linux-Desktops verfügen dazu über eine grafische Benutzeroberfläche und starten seit der Anmeldung einen Agenten.

In Windows können Sie Pageant (Teil von Putty) anstelle von ssh-agent verwenden.

motilio
quelle