Benutzername für ein vorhandenes SSH-Zertifikat?

282
oberlies

Auf einem Jenkins-Server befinden sich zwei private und öffentliche SSH-Schlüssel im ~/.ssh/Verzeichnis, die beide zur Authentifizierung bei demselben externen Server verwendet werden. Ich weiß jedoch nicht, welchen Benutzernamen eines der Zertifikate verwenden soll.

Sind die Informationen zum Benutzernamen Teil der SSH-Schlüssel? Oder werden Schlüssel und Benutzername nur auf dem Server zugeordnet, um die zertifikatbasierte Autorisierung zu akzeptieren?

2

1 Antwort auf die Frage

2
Kevin Panko

Der Name des Benutzers ist nicht Teil des Schlüssels.

Auf der Serverseite gibt die Datei an ~/.ssh/authorized_keys, welche Schlüssel sich bei einem bestimmten Konto anmelden dürfen. Der auf den Schlüssel folgende Name ist normalerweise der Name des Benutzers. Da SSH dies jedoch ignoriert, kann es sich um einen beliebigen Namen handeln. In dieser Datei können beliebig viele Schlüssel vorhanden sein, so dass auf Wunsch viele Schlüssel autorisiert werden können.

Auf der Client-Seite ist der standardmäßig verwendete Schlüssel in ~/.ssh/id_rsaoder ~/.ssh/id_dsa, der jedoch durch Übergabe -ian den sshBefehl geändert werden kann .

 -i identity_file Selects a file from which the identity (private key) for RSA or DSA authentication is read. The default is ~/.ssh/identity for protocol version 1, and ~/.ssh/id_rsa and ~/.ssh/id_dsa for pro- tocol version 2. Identity files may also be specified on a per- host basis in the configuration file. It is possible to have multiple -i options (and multiple identities specified in config- uration files). 

Auf diese Weise müssen Server und Client nicht denselben Benutzernamen verwenden.