Wie kann ein Linux-Dienst (Jenkins) beim Start ein Kerberos-TGT erhalten?

358
Dave

Ich verwende CentOS 7.3 auf mehreren Linux-Hosts. Kerberos wurde eingerichtet, um Single Sign On für SSH zu ermöglichen. Wenn ich als menschlicher Benutzer ausgeführt werde, kann ich ohne Probleme ohne Passwort SSH herumlaufen.

Ich habe Jenkins auf diesem Rechner installiert. Die von mir ausgeführten Jenkins-Jobs versuchen, Befehle auf Remote-Hosts über SSH auszuführen (diese Jobs werden direkt auf dem Jenkins-Master ausgeführt, sie werden nicht an Jenkins-Slaves ausgelagert). Leider werden diese Remote-Jobs nicht ausgeführt, da der Linux-Benutzer (namens " Jenkins" ) diese Jobs ausgeführt wird, da er nach dem Start des Jenkins-Dienstes keinen Kerberos TGT besitzt. Daher kann sich dieser Benutzer nicht beim Remote-Host authentifizieren, um den Remote-Befehl auszuführen. Dies wurde festgestellt, indem ein Job erstellt wurde, der lediglich die vorhandenen Tickets auflistet:

#!/bin/bash  klist 

Dies gibt diese Ausgabe ähnlich wie:

klist: Credentials cache keyring 'persistent:1138460974:krb_ccache_JWNORv4' not found 

Wie kann ich veranlassen, dass der jenkins- Benutzer während der Ausführung von Jobs immer ein TGT hat?

0
Verwenden Sie eine Kerberos-Keytab-Datei. Ein Beispiel finden Sie hier: https://superuser.com/questions/1343125/setting-up-a-keytab-for-a-user-fails-kinit-password-incorrect-while-getting-i Dave vor 5 Jahren 0

0 Antworten auf die Frage