Verwenden der SSH-Schlüsselauthentifizierung

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Verbinden über SSH auf macOS, Linux oder Windows, um eine sichere Verbindung mit der HTTPS-Authentifizierung herzustellen. Bei Windows empfehlen wir die Verwendung von Git Credential Manager oder persönlichen Zugriffstoken.

Wichtig

SSH-URLs wurden geändert, alte SSH-URLs funktionieren jedoch weiterhin. Wenn Sie SSH bereits eingerichtet haben, sollten Sie Ihre Remote-URLs auf das neue Format aktualisieren:

  • Überprüfen Sie, welche Remotes SSH verwenden, indem Sie in Ihrem Git-Client ausgeführt werden git remote -v .
  • Besuchen Sie Ihr Repository im Web, und wählen Sie oben rechts die Schaltfläche " Klonen " aus.
  • Wählen Sie SSH aus, und kopieren Sie die neue SSH-URL.
  • Führen Sie in Ihrem Git-Client Folgendes aus: git remote set-url <remote name, e.g. origin> <new SSH URL>. Alternativ wechseln Sie in Visual Studio zu Repository Einstellungen, und bearbeiten Sie Ihre Remotedaten.

Hinweis

Ab Visual Studio 2017 kann SSH zum Herstellen einer Verbindung mit Azure DevOps Git-Repos verwendet werden.

Funktionsweise der SSH-Schlüsselauthentifizierung

Die SSH-Authentifizierung für öffentliche Schlüssel funktioniert mit einem asymmetrischen Paar generierter Verschlüsselungsschlüssel. Der öffentliche Schlüssel wird für Azure DevOps freigegeben und verwendet, um die anfängliche SSH-Verbindung zu überprüfen. Der private Schlüssel wird auf Ihrem System sicher und sicher gehalten.

Einrichten der SSH-Schlüsselauthentifizierung

Die folgenden Schritte umfassen die Konfiguration der SSH-Schlüsselauthentifizierung auf den folgenden Plattformen:


  • Linux
  • macOS mindestens Leopard (10,5)
  • Windows Systeme, die Git für Windows ausführen

Konfigurieren Sie SSH mithilfe der Befehlszeile. bashist die allgemeine Shell unter Linux und macOS, und die Git für Windows Installation fügt eine Verknüpfung zu Git Bash in der Startmenü hinzu. Andere Shellumgebungen funktionieren, werden jedoch in diesem Artikel nicht behandelt.

Schritt 1: Erstellen Ihrer SSH-Schlüssel

Hinweis

Wenn Sie bereits SSH-Schlüssel auf Ihrem System erstellt haben, überspringen Sie diesen Schritt, und wechseln Sie zum Konfigurieren von SSH-Schlüsseln.

Mit den hier aufgeführten Befehlen können Sie neue STANDARD-SSH-Schlüssel erstellen und vorhandene Standardschlüssel überschreiben. Überprüfen Sie vor dem Fortsetzen Ihren ~/.ssh Ordner (z. B. /home/jamal/.ssh oder C:\Users\jamal\.ssh), und suchen Sie nach den folgenden Dateien:

  • id_rsa
  • id_rsa.pub

Wenn diese Dateien vorhanden sind, haben Sie bereits SSH-Schlüssel erstellt. Sie können die Tasten mit den folgenden Befehlen überschreiben oder diesen Schritt überspringen und zum Konfigurieren von SSH-Schlüsseln wechseln, um diese Schlüssel wiederzuverwenden.

Erstellen Sie Ihre SSH-Schlüssel mit dem ssh-keygen Befehl aus der bash Eingabeaufforderung. Dieser Befehl erstellt einen 3072-Bit-RSA-Schlüssel für die Verwendung mit SSH. Sie können eine Passphrase für Ihren privaten Schlüssel angeben, wenn Sie dazu aufgefordert werden – diese Passphrase stellt eine weitere Sicherheitsebene für Ihren privaten Schlüssel bereit. Wenn Sie eine Passphrase angeben, müssen Sie den SSH-Agent so konfigurieren , dass Ihre Passphrase zwischengespeichert wird, damit Sie sie nicht jedes Mal eingeben müssen, wenn Sie eine Verbindung herstellen.

$ ssh-keygen -C "jamal@fabrikam.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/jamal/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/jamal/.ssh/id_rsa.
Your public key has been saved in /c/Users/jamal/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:******************************************* jamal@fabrikam.com
The key's randomart image is:
+---[RSA 3072]----+
|+.   +yX*o .     |
|... ..E+*=o      |
|  ..o.=E=.o      |
|   . * =.o .     |
|    . S o o..    |
|       + .oo     |
|        S+.  .   |
|        ..+.+    |
|          o*..   |
+----[SHA256]-----+

Dieser Befehl erzeugt die beiden schlüssel, die für die SSH-Authentifizierung erforderlich sind: Ihr privater Schlüssel ( id_rsa ) und den öffentlichen Schlüssel ( id_rsa.pub ). Es ist wichtig, niemals den Inhalt Ihres privaten Schlüssels zu teilen. Wenn der private Schlüssel kompromittiert ist, können Angreifer es verwenden, um Server zu verleiten, die Verbindung von Ihnen zu denken.

Schritt 2: Hinzufügen des öffentlichen Schlüssels zu Azure DevOps Services/TFS

Ordnen Sie den im vorherigen Schritt generierten öffentlichen Schlüssel ihrer Benutzer-ID zu.

  1. Öffnen Sie Ihre Sicherheitseinstellungen, indem Sie zum Webportal navigieren und Ihren Avatar oben rechts auf der Benutzeroberfläche auswählen. Wählen Sie öffentliche SSH-Schlüssel im angezeigten Menü aus.

    Screenshot that shows the SSH public keys menu item and the user avatar selected in Azure DevOps Services.

  2. Wählen Sie + Neuer Schlüssel aus.

    Accessing Security Configuration in Azure DevOps Services

  3. Kopieren Sie den Inhalt des öffentlichen Schlüssels (z. B. id_rsa.pub), den Sie im Feld "Public Key Data " generiert haben.

    Wichtig

    Vermeiden Sie das Hinzufügen von Leerzeichen oder neuen Zeilen in das Feld "Schlüsseldaten", da sie dazu führen können, dass Azure DevOps Services einen ungültigen öffentlichen Schlüssel verwenden. Beim Einfügen in den Schlüssel wird am Ende häufig eine Neue Zeile hinzugefügt. Achten Sie darauf, diese Neue Zeile zu entfernen, wenn sie auftritt.

    Configuring Public Key in Azure DevOps Services

  4. Geben Sie dem Schlüssel eine nützliche Beschreibung (diese Beschreibung wird auf der SSH-Seite für öffentliche Schlüssel für Ihr Profil angezeigt), damit Sie ihn später merken können. Wählen Sie "Speichern " aus, um den öffentlichen Schlüssel zu speichern. Nach dem Speichern können Sie den Schlüssel nicht mehr ändern. Sie können den Schlüssel löschen oder einen neuen Eintrag für einen anderen Schlüssel erstellen. Es gibt keine Einschränkungen für die Anzahl der Schlüssel, die Sie Ihrem Benutzerprofil hinzufügen können. Beachten Sie außerdem, dass SSH-Schlüssel, die in Azure DevOps gespeichert sind, nach fünf Jahren ablaufen. Wenn Ihr Schlüssel abläuft, können Sie einen neuen Schlüssel oder dieselbe hochladen, um weiterhin über SSH auf Azure DevOps zuzugreifen.

  5. Testen Sie die Verbindung, indem Sie den folgenden Befehl ausführen: ssh -T git@ssh.dev.azure.com Wenn alles richtig funktioniert, erhalten Sie eine Antwort, die besagt: remote: Shell access is not supported. Wenn nicht, lesen Sie den Abschnitt zu Fragen und Problembehandlung.

Schritt 2: Hinzufügen des öffentlichen Schlüssels zu Azure DevOps

Ordnen Sie den im vorherigen Schritt generierten öffentlichen Schlüssel ihrer Benutzer-ID zu.

  1. Öffnen Sie Ihre Sicherheitseinstellungen, indem Sie zum Webportal navigieren und Ihren Avatar oben rechts auf der Benutzeroberfläche auswählen. Wählen Sie " Sicherheit " im angezeigten Menü aus.

    Accessing User Profile in Azure DevOps Services

  2. Wählen Sie + Neuer Schlüssel aus.

    Accessing Security Configuration in Azure DevOps Services

  3. Kopieren Sie den Inhalt des öffentlichen Schlüssels (z. B. id_rsa.pub), den Sie im Feld "Public Key Data " generiert haben.

    Hinweis

    Sie können den Befehl $ cat ~/.ssh/id_rsa.pub verwenden, um den Inhalt der Datei "id_rsa.pub" im Terminal zu drucken, und kopieren Sie dies dann in die Zwischenablage. Wenn Ihre SSH-Datei über einen anderen Namen als den Beispielcode verfügt, ändern Sie den Dateinamen so, dass sie ihrem aktuellen Setup entspricht. Fügen Sie beim Kopieren Des Schlüssels keine Newlines oder Leerzeichen hinzu. Alternativ können Sie den ausgeblendeten SSH-Ordner suchen, die Datei in Ihrem bevorzugten Text-Editor öffnen und in ihre Zwischenablage kopieren.

    Wichtig

    Vermeiden Sie das Hinzufügen von Leerzeichen oder neuen Zeilen in das Feld "Schlüsseldaten", da sie dazu führen können, dass Azure DevOps Services einen ungültigen öffentlichen Schlüssel verwenden. Beim Einfügen in den Schlüssel wird am Ende häufig eine Neue Zeile hinzugefügt. Achten Sie darauf, diese Neue Zeile zu entfernen, wenn sie auftritt.

    Configuring Public Key in Azure DevOps Services

  4. Geben Sie dem Schlüssel eine nützliche Beschreibung (diese Beschreibung wird auf der SSH-Seite für öffentliche Schlüssel für Ihr Profil angezeigt), damit Sie ihn später merken können. Wählen Sie "Speichern " aus, um den öffentlichen Schlüssel zu speichern. Nach dem Speichern können Sie den Schlüssel nicht mehr ändern. Sie können den Schlüssel löschen oder einen neuen Eintrag für einen anderen Schlüssel erstellen. Es gibt keine Einschränkungen für die Anzahl der Schlüssel, die Sie Ihrem Benutzerprofil hinzufügen können.

  5. Testen Sie die Verbindung, indem Sie den folgenden Befehl ausführen: ssh -T git@ssh.dev.azure.com Wenn alles richtig funktioniert, erhalten Sie eine Antwort, die besagt: remote: Shell access is not supported. Wenn nicht, lesen Sie den Abschnitt zu Fragen und Problembehandlung.

Schritt 3: Klonen des Git-Repositorys mit SSH

Hinweis

Informationen zum Herstellen einer Verbindung mit SSH aus einem vorhandenen geklonten Repo finden Sie unter Aktualisieren Ihrer Remotedaten auf SSH.

  1. Kopieren Sie die SSH-Klon-URL aus dem Webportal. In diesem Beispiel ist die SSL-Klon-URL für ein Repo in einer Organisation namens fabrikam-fiber, wie durch den ersten Teil der URL nach angegeben dev.azure.com.

    Azure Repos SSH Clone URL

    Hinweis

    Bei Azure DevOps Services ist dev.azure.com/{your organization}/{your project}das Format für die Projekt-URL . Das vorherige Format, das auf das visualstudio.com Format verweist, wird jedoch weiterhin unterstützt. Weitere Informationen finden Sie in der Einführung in Azure DevOps, indem Sie vorhandene Organisationen wechseln, um die neue Domänennamen-URL zu verwenden.

  2. Führen Sie git clone an einer Eingabeaufforderung aus.

    git clone git@ssh.dev.azure.com:v3/fabrikam-fiber/FabrikamFiber/FabrikamFiber
    

SSH zeigt möglicherweise den SSH-Fingerabdruck des Servers an und fordert Sie auf, ihn zu überprüfen. Sie sollten überprüfen, ob der angezeigte Fingerabdruck mit einem der Fingerabdrücke auf der SEITE mit öffentlichen SSH-Schlüsseln übereinstimmt.

SSH zeigt diesen Fingerabdruck an, wenn es eine Verbindung mit einem unbekannten Host herstellt, um Sie vor Man-in-the-Middle-Angriffen zu schützen. Sobald Sie den Fingerabdruck des Hosts akzeptiert haben, werden Sie von SSH nicht mehr aufgefordert, es sei denn, der Fingerabdruck ändert sich.

$ git clone git@ssh.dev.azure.com:v3/fabrikam-fiber/FabrikamFiber/FabrikamFiber
Cloning into 'FabrikamFiber'...
The authenticity of host 'ssh.dev.azure.com (65.52.8.37)' can't be established.
RSA key fingerprint is SHA256:********************************************
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ssh.dev.azure.com,65.52.8.37' (RSA) to the list of known hosts.
Enter passphrase for key '/c/Users/jamal/.ssh/id_rsa':
remote: Azure Repos
remote: Found 127 objects to send. (50 ms)
Receiving objects: 100% (127/127), 56.67 KiB | 2.58 MiB/s, done.
Resolving deltas: 100% (15/15), done.

Wenn Sie gefragt werden, ob Sie das Herstellen der Verbindung fortsetzen möchten, geben Sie yes ein. Git wird das Repo klonen und das origin Remote einrichten, um eine Verbindung mit SSH für zukünftige Git-Befehle herzustellen.

Tipp

Um Probleme zu verhindern, sollten Windows Benutzer einen Befehl ausführen, um Git ihre SSH-Schlüsselpassphrase wiederverwenden zu können.

Fragen und Problembehandlung

F: Nach dem Ausführen git cloneerhält ich den folgenden Fehler.   Wie sollte ich vorgehen?

Host key verification failed. 
fatal: Could not read from remote repository.

Eine: Aufzeichnen des SSH-Schlüssels manuell, indem Sie folgendes ausführen: ssh-keyscan -t rsa domain.com >> ~/.ssh/known_hosts

F: Wie kann ich Git an die Passphrase für meinen Schlüssel auf Windows erinnern?

Eine: Führen Sie den folgenden Befehl aus, der in Git für Windows enthalten ist, um den Prozess in PowerShell oder die ssh-agent Windows Eingabeaufforderung zu starten. ssh-agent Zwischenspeichern Sie Ihre Passphrase, damit Sie sie jedes Mal nicht bereitstellen müssen, wenn Sie eine Verbindung mit Ihrem Repo herstellen.

start-ssh-agent.cmd

Wenn Sie die Bash-Shell (einschließlich Git Bash) verwenden, starten Sie ssh-agent mit:

eval `ssh-agent`

F: Ich verwende PuTTY als mein SSH-Client und generierte meine Schlüssel mit PuTTYgen. Kann ich diese Tasten mit Azure DevOps Services verwenden?

A: Ja. Laden Sie den privaten Schlüssel mit PuTTYgen, wechseln Sie zum Menü "Konvertierungen ", und wählen Sie "OpenSSH" aus. Speichern Sie die Datei für den privaten Schlüssel, und führen Sie dann die Schritte aus, um nicht standardmäßige Schlüssel einzurichten. Kopieren Sie Ihren öffentlichen Schlüssel direkt aus dem PuTTYgen-Fenster, und fügen Sie das Feld "Schlüsseldaten " in Ihre Sicherheitseinstellungen ein.

F: Wie kann ich überprüfen, ob der hochgeladene öffentliche Schlüssel der gleiche Schlüssel ist wie ich lokal habe?

Eine: Mithilfe der Befehlszeile können Sie den Fingerabdruck des öffentlichen Schlüssels überprüfen, der in Ihrem bash Profil ssh-keygen angezeigt wird. Sie müssen den Pfad und den Dateinamen des öffentlichen Schlüssels ändern, wenn Sie die Standardeinstellungen nicht verwenden.

ssh-keygen -l -E md5 -f ~/.ssh/id_rsa.pub

Anschließend können Sie die MD5-Signatur mit der 1 in Ihrem Profil vergleichen. Diese Überprüfung ist nützlich, wenn Sie Verbindungsprobleme haben oder Bedenken darüber haben, dass der öffentliche Schlüssel im Feld "Schlüsseldaten" falsch eingefügt wird, wenn Sie den Schlüssel zu Azure DevOps Services hinzufügen.

F: Wie kann ich mit SSH in einem Repository beginnen, in dem ich derzeit HTTPS verwende?

Eine: Sie müssen das origin Remote in Git aktualisieren, um von einer HTTPS-zu SSH-URL zu wechseln. Nachdem Sie über die SSH-Klon-URL verfügen, führen Sie den folgenden Befehl aus:

git remote set-url origin git@ssh.dev.azure.com:v3/fabrikam-fiber/FabrikamFiber/FabrikamFiber

Sie können jetzt einen beliebigen Git-Befehl ausführen, mit dem eine Verbindung hergestellt originwird.

F: Ich verwende Git LFS mit Azure DevOps Services und erhalte Fehler beim Abrufen von Dateien, die von Git LFS nachverfolgt wurden.

A: Azure DevOps Services derzeit nicht LFS über SSH unterstützt. Verwenden Sie HTTPS, um eine Verbindung mit Repos mit Git LFS nachverfolgten Dateien herzustellen.

F: Wie kann ich einen nicht standardmäßigen Schlüsselspeicherort verwenden, d. h. nicht ~/.ssh/id_rsa und ~/.ssh/id_rsa.pub?

Eine: Führen Sie die folgenden beiden Aufgaben aus, um Schlüssel zu verwenden, die an ssh-keygen einem anderen Ort als dem Standard erstellt wurden:

  1. Die Schlüssel müssen sich in einem Ordner befinden, in dem nur Sie lesen oder bearbeiten können. Wenn der Ordner über größere Berechtigungen verfügt, verwendet SSH die Schlüssel nicht.
  2. Sie müssen SSH über den Speicherort der Schlüssel informieren. Sie stellen SSH über den ssh-add Befehl sicher, dass der vollständige Pfad zum privaten Schlüssel bereitgestellt wird.
ssh-add /home/jamal/.ssh/id_jamal.rsa

Bevor Sie Windows ausführenssh-add, müssen Sie den folgenden Befehl ausführen, der in Git für Windows enthalten ist:

start-ssh-agent.cmd

Dieser Befehl wird sowohl in PowerShell als auch in der Eingabeaufforderung ausgeführt. Wenn Sie Git Bash verwenden, ist der Befehl, den Sie verwenden müssen, folgendes:

eval `ssh-agent`

Sie können als Teil der Git für Windows Verteilung finden ssh-add und sie auch in einer beliebigen Shellumgebung auf Windows ausführen.

Auf macOS und Linux müssen Sie auch vor dem Ausführen ssh-addausgeführt werdenssh-agent, aber die Befehlsumgebung auf diesen Plattformen kümmert sich in der Regel um den Start ssh-agent für Sie.

F: Ich habe mehrere SSH-Schlüssel. Gewusst wie verschiedene SSH-Schlüssel für verschiedene SSH-Server oder -Repos verwenden?

Eine: Wenn Sie im Allgemeinen mehrere Schlüssel für einen SSH-Client konfigurieren und eine Verbindung mit einem SSH-Server herstellen, kann der Client die Schlüssel gleichzeitig ausprobieren, bis der Server eine akzeptiert.

Dies funktioniert jedoch nicht mit Azure DevOps aus technischen Gründen im Zusammenhang mit dem SSH-Protokoll und wie unsere Git SSH-URLs strukturiert sind. Azure DevOps akzeptiert blind den ersten Schlüssel, den der Client während der Authentifizierung bereitstellt. Wenn dieser Schlüssel für das angeforderte Repo ungültig ist, schlägt die Anforderung mit dem folgenden Fehler fehl:

remote: Public key authentication failed.
fatal: Could not read from remote repository.

Für Azure DevOps müssen Sie SSH so konfigurieren, dass sie explizit eine bestimmte Schlüsseldatei verwenden. Eine Möglichkeit zum Bearbeiten Ihrer ~/.ssh/config Datei (z /home/jamal/.ssh . B. oder C:\Users\jamal\.ssh) wie folgt:

# The settings in each Host section are applied to any Git SSH remote URL with a
# matching hostname.
# Generally:
# * SSH uses the first matching line for each parameter name, e.g. if there's
#   multiple values for a parameter across multiple matching Host sections
# * "IdentitiesOnly yes" prevents keys cached in ssh-agent from being tried before
#   the IdentityFile values we explicitly set.
# * On Windows, ~/.ssh/your_private_key maps to %USERPROFILE%\.ssh\your_private_key,
#   e.g. C:\Users\<username>\.ssh\your_private_key.

# Most common scenario: to use the same key across all hosted Azure DevOps
# organizations, add a Host entry like this:
Host ssh.dev.azure.com
  IdentityFile ~/.ssh/your_private_key
  IdentitiesOnly yes

# This model will also work if you still use the older SSH URLs with a
# hostname of vs-ssh.visualstudio.com:
Host vs-ssh.visualstudio.com
  IdentityFile ~/.ssh/your_private_key
  IdentitiesOnly yes

# Less common scenario: if you need different keys for different organizations,
# you'll need to use host aliases to create separate Host sections.
# This is because all hosted Azure DevOps URLs have the same hostname
# (ssh.dev.azure.com), so SSH has no way to distinguish them by default.
#
# Imagine that we have the following two SSH URLs:
# * git@ssh.dev.azure.com:v3/Fabrikam/Project1/fab_repo
#   * For this, we want to use `fabrikamkey`, so we'll create `devops_fabrikam` as
#     a Host alias and tell SSH to use `fabrikamkey`.
# * git@ssh.dev.azure.com:v3/Contoso/Project2/con_repo
#   * For this, we want to use `contosokey`, so we'll create `devops_contoso` as
#     a Host alias and tell SSH to use `contosokey`.
#
# To set explicit keys for the two host aliases and to tell SSH to use the correct
# actual hostname, add the next two Host sections:
Host devops_fabrikam
  HostName ssh.dev.azure.com
  IdentityFile ~/.ssh/private_key_for_fabrikam
  IdentitiesOnly yes
Host devops_contoso
  HostName ssh.dev.azure.com
  IdentityFile ~/.ssh/private_key_for_contoso
  IdentitiesOnly yes
#
# Then, instead of using the real URLs, tell Git you want to use these URLs:
# * git@devops_fabrikam:v3/Fabrikam/Project1/fab_repo
# * git@devops_contoso:v3/Contoso/Project2/con_repo
#

# At the end of the file, you can put global defaults for other SSH hosts you
# may connect to.  Note that "*" also matches any hosts that match the sections
# above, and remember that SSH uses the first matching line for each parameter name.
Host *
# The settings in each Host section are applied to any Git SSH remote URL with a
# matching hostname.
# Generally:
# * SSH uses the first matching line for each parameter name, e.g. if there's
#   multiple values for a parameter across multiple matching Host sections
# * "IdentitiesOnly yes" prevents keys cached in ssh-agent from being tried before
#   the IdentityFile values we explicitly set.
# * On Windows, ~/.ssh/your_private_key maps to %USERPROFILE%\.ssh\your_private_key,
#   e.g. C:\Users\<username>\.ssh\your_private_key.

# Say your on-premises Azure DevOps Server instance has SSH URLs like this:
#   ssh://someHost:22/someCollection/some_project/_git/some_repo
# Add the following Host section:
Host someHost
  IdentityFile ~/.ssh/your_private_key
  IdentitiesOnly yes

# At the end of the file, you can put global defaults for other SSH hosts you
# may connect to.  Note that "*" also matches any hosts that match the sections
# above, and remember that SSH uses the first matching line for each parameter name.
Host *

F: Gewusst wie Beheben von Fehlern, die "keine übereinstimmende Schlüsselaustauschmethode gefunden" erwähnen?

Eine: Git für Windows 2.25.1 mit einer neuen Version von OpenSSH, die standardmäßig einige Schlüsselaustauschprotokolle entfernt hat. diffie-hellman-group14-sha1 Insbesondere wurde für einige Azure DevOps Server- und TFS-Kunden als problematisch identifiziert. Sie können das Problem umgehen, indem Sie ihrer SSH-Konfiguration folgendes hinzufügen (~/.ssh/config):

Host <your-azure-devops-host>
    KexAlgorithms +diffie-hellman-group14-sha1

Ersetzen Sie <your-azure-devops-host> den Hostnamen Ihres Azure DevOps- oder TFS-Servers, wie ztfs.mycompany.com. B. .

F: Welche Benachrichtigungen können ich über meine SSH-Schlüssel erhalten?

Eine: Wenn Sie einen neuen SSH-Schlüssel mit Azure DevOps Services registrieren, erhalten Sie eine E-Mail-Benachrichtigung, die Sie darüber informiert, dass ein neuer SSH-Schlüssel ihrem Konto hinzugefügt wurde.

SSH notification example

F: Was kann ich tun, wenn ich glaube, dass jemand anderes als ich SSH-Schlüssel auf meinem Konto hinzufügt?

Eine: Wenn Sie eine Benachrichtigung über einen SSH-Schlüssel erhalten, der registriert wird und Sie sie nicht manuell in den Dienst hochgeladen haben, wurden Ihre Anmeldeinformationen möglicherweise kompromittiert.

Der nächste Schritt wäre es, zu untersuchen, ob Ihr Kennwort kompromittiert wurde. Das Ändern Ihres Kennworts ist immer ein guter erster Schritt, um diesen Angriffsvektor zu verteidigen. Wenn Sie ein Azure Active Directory Benutzer sind, sprechen Sie mit Ihrem Administrator, um zu überprüfen, ob Ihr Konto von einer unbekannten Quelle/Ort verwendet wurde.

F: Was kann ich tun, wenn ich noch für mein Kennwort aufgefordert wird und GIT_SSH_COMMAND="ssh -v" git fetch zeigt?no mutual signature algorithm

Eine: Einige Linux-Distributionen wie Fedora Linux verfügen über Kryptorichtlinien, die stärkere SSH-Signaturalgorithmen erfordern als Azure DevOps unterstützt (ab Januar 2021). Es gibt eine offene Featureanforderung , um diesen Support hinzuzufügen.

Sie können das Problem umgehen, indem Sie der SSH-Konfiguration den folgenden Code hinzufügen (~/.ssh/config):

Host ssh.dev.azure.com
  PubkeyAcceptedKeyTypes=ssh-rsa

Ersetzen Sie ssh.dev.azure.com den richtigen Hostnamen, wenn Sie Azure DevOps Server verwenden.