Jenkins zum Ausführen von SSH-Befehlen einrichten – wo werden SSH-Schlüssel für einen Benutzer mit deaktivierter Anmeldung gespeichert?

Jenkins zum Ausführen von SSH-Befehlen einrichten – wo werden SSH-Schlüssel für einen Benutzer mit deaktivierter Anmeldung gespeichert?

Ich versuche, ein Schlüsselpaar zu generieren, um einem Jenkins-Server die SSH-Verbindung zu einem anderen zu ermöglichen (über das Plugin „ssh-steps“, falls das relevant ist). Der öffentliche Schlüssel wird in die autorisierten Schlüssel auf dem Zielhost eingefügt. Meines Wissens sollte es einfach sein, etwa so:

sudo su - [jenkins user]
ssh-keygen -t rsa -b 4096 -C jenkinsuser@jenkinshost 

Speichern Sie dann den Schlüssel /home/jenkinsuser/.ssh/id_rsaund greifen Sie auf den öffentlichen Schlüssel zu, um ihn den autorisierten Schlüsseln auf dem Host hinzuzufügen.

Was ich sehe, ist, dass das sudo su - jenkinsusernicht funktioniert und, so wie ich es verstehe, /etc/passwdanzeigt, dass die Shell für diesen Benutzer auf eingestellt ist , um die Anmeldung zu deaktivieren./bin/false

Vor diesem Hintergrund suche ich nach einer bewährten Methode zum Zuweisen eines Platzes für den SSH-Schlüssel, da die Anmeldung für den Benutzer deaktiviert ist und er daher kein Home-Verzeichnis hat.

Antwort1

Jenkins verfügt über eine integrierteAnmeldeinformationsspeicherDies ist der am besten geeignete Ort, um SSH-Schlüssel abzulegen, die von Jenkins-Jobs verwendet werden. Der Anmeldeinformationsspeicher ist für die Speicherung verschiedener Arten von Anmeldeinformationen konzipiert, die von Jenkins-Jobs verwendet werden, z. B. SSH-Schlüssel, Benutzernamen/Passwörter und API-Schlüssel. Der Anmeldeinformationsspeicher ermöglicht die Delegierung des Zugriffs und stellt sicher, dass vertrauliche Anmeldeinformationen nicht in die Jobausgabe geschrieben werden.

Antwort2

Sie müssen kein Root-Benutzer sein, um das Skript zur Schlüsselgenerierung auszuführen.

Normalerweise speichere ich alle meine Schlüssel in /etc/ssh. Dies ist außerhalb des Home-Verzeichnisses und ich denke, /etcdas ist das genaueste Verzeichnis dafür.

verwandte Informationen