Git aus PowerShell mit sicheren Anmeldeinformationen verwenden: Methoden, Tricks und Fehlerbehebung

Letzte Aktualisierung: 26/08/2025
Autor: Holger
  • Priorisieren Sie die Microsoft OAuth-Anmeldung; verwenden Sie PAT oder SSH je nach Kontext und verlassen Sie sich auf Git Credential Manager.
  • Geheimnisse sicher verwalten: SecureString/Keyfile in Powershell und Geheimnisse in GitHub Actions.
  • Automatisieren Sie mit Fabric-APIs, um Verbindungen herzustellen, zu aktualisieren und Änderungen zu übernehmen, während Sie LRO-Vorgänge überwachen.
  • Beheben Sie Authentifizierungsprobleme in Azure DevOps, indem Sie GCM, Remotes, Caches und Netzwerkkonfiguration korrigieren.

Git und PowerShell mit sicheren Anmeldeinformationen

Sichere Verwendung von Git aus PowerShell Es ist nicht nur eine Frage der Bequemlichkeit; es ist eine Voraussetzung für den Schutz Ihres Codes und Ihrer Pipelines. In Szenarien mit Azure DevOps-, GitHub- oder Microsoft Fabric-Integrationen macht die ordnungsgemäße Authentifizierung den Unterschied zwischen einem robusten und einem anfälligen Workflow aus.

In diesem praktischen und umfassenden Leitfaden Wir überprüfen empfohlene Authentifizierungsmethoden (Microsoft OAuth, PAT und SSH), die Verwendung des Git Credential Managers, Lagerung Geheimnisse mit PowerShell, Geheimnisse in GitHub Actions, Automatisierung mit Fabric-APIs und Behebung typischer Azure DevOps-Anmeldeprobleme. Der Fokus liegt dabei auf der Risikominimierung und Produktivitätssteigerung.

Authentifizierungsmethoden für Git: OAuth-, PAT- und SSH-Schlüssel

Der heute bevorzugte Ansatz Verwenden Sie für Azure Repos/Azure DevOps aufgrund ihrer Unternehmensintegration und Umfangskontrollen Microsoft Entra-Token basierend auf OAuth 2.0. Alternativ können Sie auch PAT und SSH-Schlüssel verwenden, wenn dies praktischer oder erforderlich ist.

  • Microsoft Login OAuth-Token (empfohlen): Diese können bei Bedarf abgerufen und sowohl mit Git- als auch mit REST-APIs verwendet werden. Über die Azure CLI können Sie sich anmelden und ein Zugriffstoken abrufen, das Sie Ihren Git-Vorgängen hinzufügen können. Beispielsweise können Sie mit der Benutzerauthentifizierung das Token mit az account get-access-token und wenden Sie es auf Git an, indem Sie einen zusätzlichen Header wie http.extraheader mit mut AUTHORIZATION: bearer (unter Verwendung von „Bearer“ und dem ausgegebenen Token).
  • Persönliche Zugriffstoken (PAT): Diese sind nützlich, wenn Sie kein SSH haben oder OAuth nicht verwenden können. Sie können durch Genehmigungen und Ablauf begrenzt sein, wodurch die Gefährdung verringert wird. Wenn Sie sie mit HTTPS verwenden, denken Sie daran, dass Git nach einem Benutzernamen fragt (dieser kann fiktiv sein) und das Passwort die PAT ist. Wenn Sie die PAT in einem Header oder String senden müssen, ist die Base64-Kodierung eine gängige clientseitige Vorgehensweise, wenn der Workflow dies erfordert.
  • SSH-Schlüssel: Sie arbeiten mit einem auf Ihrem Computer generierten öffentlichen/privaten Paar. Der öffentliche Schlüssel ist mit Ihrem Konto verknüpft (z. B. in Azure DevOps oder GitHub) und der Server verschlüsselt die Kommunikation; Sie entschlüsseln mit der lokalen privaten Verbindung, die niemals weitergegeben werden sollte. SSH ist besonders praktisch, wenn Sie den SSH-Agenten bereits verwenden, wenn Sie PAT nicht über HTTPS verwalten möchten oder wenn Ihre Linux-/macOS-/Windows-Umgebung (z. B. Git) Windows) passt am besten zu Schlüsseln.
  So aktivieren und deaktivieren Sie den Ruhezustand in Windows 11 Schritt für Schritt

Git Credential Manager: Authentifizierung ohne ständiges Tippen

CEO von GitHub
24 GitHub-Logo.
WIRTSCHAFT
UNSPLASH

Der Git Credential Manager (GCM) Speichert und gibt Token bei Bedarf aus, sodass Sie sich nicht für jede Transaktion erneut authentifizieren müssen. Mit installiertem GCM melden Sie sich einmal an, und der Manager speichert das Token (Preferred Attendance OAuth oder PAT) sicher für die Verwendung mit Git und anderen Clients.

Bewährte Verfahren mit GCM: Wenn Sie Methoden ändern oder Konflikte feststellen, deinstallieren Sie alte Credential Manager-Konfigurationen und konfigurieren Sie sie neu. Dann widerruft oder rotiert Anmeldeinformationen wenn sie nicht mehr erforderlich sind, um das Prinzip der geringsten Privilegien einzuhalten.

Arbeiten mit vorhandenen Repositories: Quelle, PAT und Klonen

Entfernen Sie die vorherige Fernbedienung wenn es mit einer alten Methode konfiguriert wurde (z. B. Benutzername/Passwort). Sie können die Fernbedienung mit git remote remove origin um Konflikte bei den Anmeldeinformationen zu vermeiden, bevor Sie es erneut hinzufügen.

Fügen Sie die Fernbedienung mit Authentifizierung erneut hinzu Die Verwendung von PAT über HTTPS kann Probleme mit der Eingabeaufforderung lösen. Der Remote-Zugriff kann in einer URL mit eingebettetem PAT im Benutzer ausgedrückt werden. Alternativ kann GCM verwendet werden, um die Offenlegung des Tokens im Text zu vermeiden. Nach dem Hinzufügen des Remote-Zugriffs schieben Sie die Zweige mit git push -u origin --all.

Klonen mit Azure DevOps: Der Repo-Pfad in Azure DevOps enthält das Segment /_git/Die typische Klon-URL sieht etwa so aus: https://dev.azure.com/{organization}/{project}/_git/{repository}, unter Berücksichtigung, dass der eigentliche Name des Repos ersetzt zur entsprechenden Markierung.

SSH mit GitHub: Schlüssel prüfen, generieren und zuordnen

GitHub ermöglicht Authentifizierung und Signierung Commits und Tags über SSH. Bevor Sie einen neuen Schlüssel hinzufügen, prüfen Sie, ob Sie bereits einen registriert haben. Wenn nicht, generieren Sie einen neuen und fügen Sie ihn dem SSH-Agenten Ihres Systems hinzu.

Verknüpfen Sie den öffentlichen Schlüssel Aktivieren Sie den SSH-Zugriff auf Ihr GitHub.com-Konto. Wenn Sie denselben Schlüssel für Authentifizierung und Signatur verwenden möchten, Sie müssen es zweimal aufladen, eine für jeden Zweck. Sie können dann eine Remote-Verbindung so neu konfigurieren, dass sie SSH statt HTTPS verwendet.

  Windows 10 kann nicht auf die Werkseinstellungen zurückgesetzt werden. Es gibt sechs Möglichkeiten, das Problem zu lösen.

Automatisierung mit Microsoft Fabric: Git-API-Integration

  • Fabric bietet REST-APIs für die Integration mit Git für CI/CD und allgemeine Vorgänge: Verbinden von Arbeitsbereichen, Initialisieren von Verbindungen, Aktualisieren von Git, Festschreiben von Massen- oder selektiven Änderungen und Überwachen lang andauernder Vorgänge.
  • Verbinden und Aktualisieren eines Arbeitsbereichs: nach der Authentifizierung (zum Beispiel mit Connect-AzAccount) und erhalten Sie ein Token mit Get-AzAccessTokenruft die Verbindungs-API auf, um Arbeitsbereich, Repository und Zweig zu verknüpfen. Dann initialisiert die Verbindung mit der dedizierten API; je nach Antwort kann „UpdateFromGit“ erforderlich sein.
  • Update von Git umfasst das Erstellen des Hauptteils mit dem Remote-Commit und dem Arbeitsbereichsstatus, das Ausführen des Aufrufs und den Staat untersuchen des lang andauernden Vorgangs. Der Server gibt eine Vorgangskennung und ein Wiederholungsintervall zurück, die Sie regelmäßig überprüfen können, bis der Vorgang abgeschlossen ist.
  • Andere Operationen per API: Alle Änderungen am Arbeitsbereich festschreiben, nach Überprüfung des Status selektiv nur bestimmte Elemente festschreiben und LRO-Operationen untersuchen das bekommen Vorgangs-ID aus den vorherigen Anrufen, um den Fortschritt zu überprüfen.
  • Anmeldeinformationen für den Git-Anbieter: Viele Anrufe erfordern eine Verbindungs-ID. Sie können eine neue Verbindung erstellen, die Speichern Sie ein GitHub PAT als Anmeldeinformation (optional mit Beschränkung auf ein bestimmtes Repository) oder zur Wiederverwendung vorhandener Verbindungen id. Diese Endpunkte geben Eigenschaften zurück wie Anzeigename, Weg, Anmeldeinformationstyp und andere Metadaten.
  • Zu berücksichtigende Einschränkungen: Die API-Integration erbt UI-Einschränkungen, die Dienstprinzipalauthentifizierung wird nur für GitHub unterstützt und bestimmte semantische Modelle können nach verbesserten Updates mit Unterschieden auftreten.

Sicheres Speichern von Anmeldeinformationen mit PowerShell

Mit PowerShell können Sie Passwörter und Geheimnisse verschlüsseln und speichern Sie sie auf der Festplatte für die spätere Verwendung in Skripten. Mit Read-Host -AsSecureString Sie können sichere Anmeldeinformationen erfassen mit ConvertFrom-SecureString serialisieren Sie es verschlüsselt in eine Datei, die nur für denselben Benutzer und Computer gültig ist.

  • Mit demselben Benutzer verwenden: die verschlüsselte Zeichenfolge, die mit gespeichert wurde ConvertFrom-SecureString kann nur vom Benutzer entschlüsselt das es erzeugt hat. Um es wieder in einem Skript, sich bewerben Get-Content y ConvertTo-SecureString um das sichere Objekt im Speicher neu zu erstellen.
  • Portable Schlüsseldatei: Wenn Sie möchten, dass andere Benutzer oder Maschinen das Geheimnis entschlüsseln können, generieren Sie einen symmetrischen Schlüssel (zum Beispiel mit RNGCryptoServiceProvider) und verwenden Sie es mit ConvertFrom-SecureString -Key. Sie speichern den Schlüssel in einer Datei und später Sie erstellen den SecureString neu mit ConvertTo-SecureString -Key unter Verwendung derselben Schlüsseldatei.
  • Erstellen eines PSCredential Aus dem geheimen Lesen geht es direkt: Sie kombinieren den Benutzer und die SecureString en New-Object System.Management.Automation.PSCredentialAuf diese Weise parametrisieren Sie den Benutzernamen und das Kennwort, ohne den Klartext im Skript preiszugeben.
  • Gedächtnishygiene: Obwohl SecureString isoliert die Zeichenfolge, es gibt Fälle, in denen Sie sie für die Interoperabilität in Text umwandeln. Wenn Sie dies tun, geben Sie den Zeigerspeicher frei mit ZeroFreeCoTaskMemUnicode nach der Verwendung SecureStringToBSTR y PtrToStringUni, Vermeidung von Speicherverschwendung.