Używanie uwierzytelniania klucza SSH
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Możesz połączyć się z repozytoriami Git za pośrednictwem protokołu SSH w systemach macOS, Linux lub Windows, aby bezpiecznie nawiązać połączenie z usługą Azure DevOps.
Ważne
Adresy URL protokołu SSH uległy zmianie, ale stare adresy URL protokołu SSH nadal działają. Jeśli masz już skonfigurowany protokół SSH, zaktualizuj zdalne adresy URL do nowego formatu:
Aktualne adresy URL protokołu SSH zaczynają się od ssh.dev.azure.com
. Poprzednie adresy URL używają polecenia vs-ssh.visualstudio.com
.
- Sprawdź, które zdalnie używają protokołu SSH. Uruchom
git remote -v
polecenie w powłoce lub zamiast tego użyj klienta graficznego interfejsu użytkownika. - Odwiedź repozytorium w Internecie i wybierz pozycję Klonuj.
- Wybierz pozycję SSH i skopiuj nowy adres URL SSH.
- W powłoce uruchom
git remote set-url <remote name> <new SSH URL>
polecenie dla każdego zdalnego repozytorium, które chcesz zaktualizować. Możesz też użyć klienta graficznego interfejsu użytkownika, aby zaktualizować zdalne adresy URL.
Jak działa uwierzytelnianie za pomocą klucza SSH
Uwierzytelnianie za pomocą klucza publicznego SSH działa z asymetryczną parą wygenerowanych kluczy szyfrowania. Klucz publiczny jest współużytkowany z usługą Azure DevOps i używany do weryfikowania początkowego połączenia SSH. Klucz prywatny jest bezpieczny i bezpieczny w systemie.
Konfigurowanie uwierzytelniania za pomocą klucza SSH
Poniższe kroki obejmują konfigurację uwierzytelniania klucza SSH na następujących platformach przy użyciu wiersza polecenia (nazywanego shell
również ):
- Linux
- macOS
- Systemy Windows z systemem Git dla systemu Windows
Napiwek
W systemie Windows zalecamy użycie
Krok 1. Tworzenie kluczy SSH
Uwaga
Jeśli klucze RSA SSH zostały już utworzone w systemie, pomiń ten krok i skonfiguruj klucze SSH.
Aby to sprawdzić, przejdź do katalogu macierzystego .ssh
i przyjrzyj się folderowi (%UserProfile%\.ssh\
w systemach Windows lub ~/.ssh/
Linux, macOS i Windows przy użyciu powłoki Git Bash). Jeśli zobaczysz dwa pliki o nazwie id_rsa
i id_rsa.pub
odpowiednio kontynuuj konfigurowanie kluczy SSH.
Aby użyć uwierzytelniania opartego na kluczach, należy najpierw wygenerować pary kluczy publicznych/prywatnych dla klienta. ssh-keygen.exe służy do generowania plików kluczy, a można określić algorytmy DSA, RSA, ECDSA lub Ed25519. Jeśli nie określono żadnego algorytmu, jest używany parametr Ed25519.
Uwaga
Jedynym typem klucza SSH obsługiwanym przez usługę Azure DevOps jest RSA.
Aby wygenerować pliki kluczy przy użyciu algorytmu RSA obsługiwanego przez usługę Azure DevOps (RSA-SHA2-256 lub RSA-SHA2-512), uruchom jedno z następujących poleceń z poziomu programu PowerShell lub innej powłoki, takiej jak bash
na kliencie:
ssh-keygen -t rsa-sha2-256
Or
ssh-keygen -t rsa-sha2-512
Dane wyjściowe polecenia powinny zawierać następujące dane wyjściowe (gdzie username
to twoja nazwa użytkownika):
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\username/.ssh/id_rsa):
Możesz nacisnąć Enter, aby zaakceptować wartość domyślną, lub określić ścieżkę i/lub nazwę pliku, w którym chcesz wygenerować klucze. W tym momencie zostanie wyświetlony monit o użycie hasła w celu zaszyfrowania plików kluczy prywatnych. Hasło może być puste, ale nie jest zalecane. Hasło współdziała z plikiem klucza w celu zapewnienia uwierzytelniania dwuskładnikowego.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\username/.ssh/id_rsa.
Your public key has been saved in C:\Users\username/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:FHK6WjcUkcfQjdorarzlak1Ob/x7AmqQmmx5ryYYV+8 username@LOCAL-HOSTNAME
The key's randomart image is:
+---[RSA 3072]----+
| . ** o |
| +.o= . |
| . o+ |
| .+. . |
| .ooS . |
| . .oo.=.o |
| =.= O.= . |
| . B BoE + . . |
| . *+*o. .o+ |
+----[SHA256]-----+
Teraz masz parę kluczy PUBLICZNEGO/prywatnego RSA w określonej lokalizacji. Pliki pub są kluczami publicznymi, a pliki bez rozszerzenia są kluczami prywatnymi:
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 10/11/2022 6:29 PM 2610 id_rsa
-a---- 10/11/2022 6:29 PM 578 id_rsa.pub
Ważne
Nigdy nie udostępniaj zawartości klucza prywatnego. Jeśli klucz prywatny zostanie naruszony, osoby atakujące mogą użyć go do myślenia, że połączenie pochodzi od Ciebie. Pliki kluczy prywatnych są odpowiednikiem hasła i powinny być chronione w taki sam sposób.
Krok 2. Dodawanie klucza publicznego do usługi Azure DevOps
Skojarz klucz publiczny wygenerowany w poprzednim kroku z identyfikatorem użytkownika.
Uwaga
Musisz powtórzyć tę operację dla każdej organizacji, do której masz dostęp i chcesz używać protokołu SSH.
Otwórz ustawienia zabezpieczeń, przechodząc do portalu internetowego i wybierając ikonę obok awatara w prawym górnym rogu interfejsu użytkownika. W wyświetlonym menu wybierz pozycję Klucze publiczne SSH.
Wybierz pozycję + Nowy klucz.
Skopiuj zawartość klucza publicznego (na przykład
id_rsa.pub
), który został wygenerowany w polu Dane klucza publicznego.Ważne
Unikaj dodawania białych znaków lub nowych wierszy do pola Dane klucza , ponieważ mogą one spowodować użycie nieprawidłowego klucza publicznego przez usługę Azure DevOps. Podczas wklejania w kluczu na końcu jest często dodawana nowa linia. Pamiętaj, aby usunąć ten nowy wiersz, jeśli wystąpi.
Nadaj kluczowi przydatny opis (ten opis jest wyświetlany na stronie kluczy publicznych SSH dla profilu), aby można było go zapamiętać później. Wybierz pozycję Zapisz , aby zapisać klucz publiczny. Po zapisaniu nie można zmienić klucza. Możesz usunąć klucz lub utworzyć nowy wpis dla innego klucza. Nie ma żadnych ograniczeń dotyczących liczby kluczy, które można dodać do profilu użytkownika. Należy również pamiętać, że klucze SSH przechowywane w usłudze Azure DevOps wygasają po roku. Jeśli klucz wygaśnie, możesz przekazać nowy klucz lub ten sam, aby nadal uzyskiwać dostęp do usługi Azure DevOps za pośrednictwem protokołu SSH.
Na stronie przeglądu kluczy publicznych SSH wyświetlane są odciski palców serwera. Zanotuj odcisk palca SHA256 do użycia podczas pierwszego nawiązywania połączenia z usługą Azure DevOps za pośrednictwem protokołu SSH.
Przetestuj połączenie, uruchamiając następujące polecenie:
ssh -T git@ssh.dev.azure.com
Jeśli łączysz się po raz pierwszy, powinny zostać wyświetlone następujące dane wyjściowe:
The authenticity of host 'ssh.dev.azure.com (<IP>)' can't be established. RSA key fingerprint is SHA256:ohD8VZEXGWo6Ez8GSEJQ9WpafgLFsOfLOtGGQCQo6Og. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])?
Porównaj odcisk palca z odciskiem palca SHA256 wyświetlanym wcześniej na stronie Kluczy publicznych SSH. Kontynuuj tylko wtedy, gdy są one zgodne!
Wprowadź ,
yes
aby kontynuować. Jeśli wszystko jest poprawnie skonfigurowane, dane wyjściowe powinny wyglądać następująco:Warning: Permanently added 'ssh.dev.azure.com' (RSA) to the list of known hosts. remote: Shell access is not supported. shell request failed on channel 0
Jeśli nie, zobacz sekcję Dotyczącą pytań i rozwiązywania problemów.
Krok 3. Klonowanie repozytorium Git przy użyciu protokołu SSH
Uwaga
Aby użyć protokołu SSH z repozytorium wcześniej sklonowanym za pośrednictwem protokołu HTTPS, zobacz Aktualizowanie zdalnych do protokołu SSH.
Skopiuj adres URL klonowania SSH z portalu internetowego. W tym przykładzie adres URL klonowania SSH jest przeznaczony dla repozytorium w organizacji o nazwie fabrikam-fiber, zgodnie z pierwszą częścią adresu URL po
dev.azure.com
.Uwaga
W przypadku usługi Azure DevOps Services format adresu URL projektu to
dev.azure.com/{your organization}/{your project}
. Jednak poprzedni format odwołującyvisualstudio.com
się do formatu jest nadal obsługiwany. Aby uzyskać więcej informacji, zobacz Wprowadzenie do usługi Azure DevOps, Przełącz istniejące organizacje, aby używać nowego adresu URL nazwy domeny.Uruchom polecenie
git clone
w wierszu polecenia.git clone git@ssh.dev.azure.com:v3/fabrikam-fiber/FabrikamFiber/FabrikamFiber
Jeśli nie używasz agenta SSH, zostanie wyświetlony monit o wprowadzenie hasła:
Cloning into 'FabrikamFiber'... Enter passphrase for key '/c/Users/username/.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.
Jeśli zamiast tego zostanie wyświetlony monit o zweryfikowanie odcisku palca, przeczytaj krok 2: Ponownie dodaj klucz publiczny do usługi Azure DevOps . W przypadku innych problemów przeczytaj sekcję Pytania i rozwiązywanie problemów.
Napiwek
Aby jak najlepiej wykorzystać protokół SSH, często używa się agenta SSH do zarządzania kluczami SSH. Jednak skonfigurowanie agenta wykracza poza zakres tego artykułu.
Pytania i rozwiązywanie problemów
.: Widzę ostrzeżenia związane z ssh-rsa. Co mam robić?
1: Istnieją dwa różne komunikaty ostrzegawcze:
ssh-rsa is about to be deprecated and your request has been throttled. Please use rsa-sha2-256 or rsa-sha2-512 instead. Your session will continue automatically. For more details see https://devblogs.microsoft.com/devops/ssh-rsa-deprecation.
Or
You’re using ssh-rsa that is about to be deprecated and your request has been blocked intentionally. Any SSH session using ssh-rsa is subject to brown out (failure during random time periods). Please use rsa-sha2-256 or rsa-sha2-512 instead. For more details see https://devblogs.microsoft.com/devops/ssh-rsa-deprecation.
Jeśli konfiguracja SSH została zmodyfikowana w celu obniżenia poziomu ustawień zabezpieczeń dla usługi Azure DevOps, dodając następujący kod do ~/.ssh/config
pliku (%UserProfile%\.ssh\config
w systemie Windows):
Host ssh.dev.azure.com vs-ssh.visualstudio.com
HostkeyAlgorithms +ssh-rsa
Usuń te wiersze teraz i upewnij się, że rsa-sha2-256
i/lub rsa-sha2-512
są dozwolone.
Aby uzyskać więcej informacji, zobacz wpis w blogu.
.: Protokół SSH nie może nawiązać połączenia. Co mam robić?
1: Istnieje wiele różnych problemów, które można napotkać:
Korzystanie z nieobsługiwanego protokołu ssh-rsa
You’re using ssh-rsa that is unsupported. Please use rsa-sha2-256 or rsa-sha2-512 instead. For more details see https://devblogs.microsoft.com/devops/ssh-rsa-deprecation.
Jeśli konfiguracja SSH została zmodyfikowana w celu obniżenia poziomu ustawień zabezpieczeń dla usługi Azure DevOps, dodając następujący kod do
~/.ssh/config
pliku (%UserProfile%\.ssh\config
w systemie Windows):Host ssh.dev.azure.com vs-ssh.visualstudio.com HostkeyAlgorithms +ssh-rsa
Usuń te wiersze teraz i upewnij się, że
rsa-sha2-256
i/lubrsa-sha2-512
są dozwolone.Aby uzyskać więcej informacji, zobacz wpis w blogu.
Brak pasującego klucza hosta
Ten problem nie powinien wystąpić w usłudze Azure DevOps Service ani w nowszych wersjach usługi Azure DevOps Server, jak wspomniano we wpisie w blogu.
Unable to negotiate with <IP> port 22: no matching host key type found. Their offer: ssh-rsa
Zmodyfikuj konfigurację SSH, aby obniżyć ustawienia zabezpieczeń dla usługi Azure DevOps, dodając następujący kod do pliku (
~/.ssh/config
w systemie%UserProfile%\.ssh\config
Windows):Host ssh.dev.azure.com vs-ssh.visualstudio.com HostkeyAlgorithms +ssh-rsa
Ważne
Protokół OpenSSH przestarzał
ssh-rsa
algorytm podpisu klucza publicznego w wersji 8.2 i wyłączył go domyślnie w wersji 8.8.Brak pasującego adresu MAC
Unable to negotiate with <IP> port 22: no matching MAC found. Their offer: hmac-sha2-256,hmac-sha2-512
Zmodyfikuj konfigurację SSH, aby obniżyć ustawienia zabezpieczeń dla usługi Azure DevOps, dodając następujący kod do pliku (
~/.ssh/config
w systemie%UserProfile%\.ssh\config
Windows):Host ssh.dev.azure.com vs-ssh.visualstudio.com MACs +hmac-sha2-512,+hmac-sha2-256
Brak pasującej metody wymiany kluczy
Unable to negotiate with <IP> 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha256
Zmodyfikuj konfigurację SSH, aby obniżyć ustawienia zabezpieczeń dla usługi Azure DevOps, dodając następujący kod do pliku (
~/.ssh/config
w systemie%UserProfile%\.ssh\config
Windows):Host ssh.dev.azure.com vs-ssh.visualstudio.com KexAlgorithms +diffie-hellman-group-exchange-sha256,+diffie-hellman-group14-sha1,+diffie-hellman-group1-sha1
Ważne
Algorytm
diffie-hellman-group1-sha1
wymiany kluczy został domyślnie wyłączony w wersji 6.9 protokołu OpenSSH idiffie-hellman-group14-sha1
w wersji 8.2.
Napiwek
W przypadku własnych wystąpień serwera Azure DevOps Server i serwera TFS użyj odpowiedniej nazwy hosta w Host
wierszu zamiast ssh.dev.azure.com vs-ssh.visualstudio.com
.
.: Jak mogę zapamiętać hasło usługi Git dla mojego klucza?
1: Możesz użyć agenta SSH. Systemy Linux, macOS i Windows (począwszy od systemu Windows 10 (kompilacja 1809) lub przy użyciu narzędzia Git dla systemu Windows z powłoką Git Bash) są dostarczane z agentem SSH. Agent SSH może służyć do buforowania kluczy SSH w celu wielokrotnego użycia. Aby uzyskać szczegółowe informacje na temat sposobu korzystania z niego, zapoznaj się z instrukcjami dostawcy SSH.
.: Używam programu PuTTY jako klienta SSH i wygenerowałem moje klucze za pomocą programu PuTTYgen. Czy mogę używać tych kluczy z usługą Azure DevOps Services?
Odpowiedź: Tak. Załaduj klucz prywatny za pomocą narzędzia PuTTYgen, przejdź do menu Konwersje i wybierz pozycję Eksportuj klucz OpenSSH. Zapisz plik klucza prywatnego, a następnie wykonaj kroki konfigurowania kluczy niezdefaultowych. Skopiuj klucz publiczny bezpośrednio z okna Programu PuTTYgen i wklej je w polu Dane klucza w ustawieniach zabezpieczeń.
.: Jak sprawdzić, czy przekazany klucz publiczny jest tym samym kluczem co mój klucz lokalny?
Zamiast tego można sprawdzić odcisk palca klucza publicznego przekazanego za pomocą tego, który jest wyświetlany w profilu, za pomocą następującego ssh-keygen
polecenia uruchom polecenie względem klucza publicznego przy użyciu wiersza polecenia. Jeśli nie używasz wartości domyślnych, musisz zmienić ścieżkę i nazwę pliku klucza publicznego.
Uwaga
Od sierpnia 2024 r. przeprowadzamy migrację z md5 do skrótów SHA-256. W okresie przejściowym może być konieczne wybranie prawidłowej funkcji.
ssh-keygen -l -E md5 -f <path_to_your_public_key> -- use this for MD5 fingerprints
ssh-keygen -l -E sha256 -f <path_to_your_public_key> -- use this for SHA-256 fingerprints
Następnie możesz porównać podpis z podpisem w profilu. Ta kontrola jest przydatna, jeśli występują problemy z połączeniem lub występują problemy z niepoprawnym wklejaniem klucza publicznego w polu Dane klucza podczas dodawania klucza do usługi Azure DevOps.
.: Jak rozpocząć korzystanie z protokołu SSH w repozytorium, w którym obecnie używam protokołu HTTPS?
1: Należy zaktualizować zdalne narzędzie origin
w usłudze Git, aby zmienić adres URL protokołu HTTPS na adres URL protokołu SSH. Po utworzeniu adresu URL klonowania SSH uruchom następujące polecenie:
git remote set-url origin <SSH URL to your repository>
Polecenia usługi Git, które uzyskują dostęp do zdalnego o nazwie origin
używa protokołu SSH.
P: Korzystam z rozszerzenia Git LFS z usługami Azure DevOps Services i otrzymuję błędy podczas ściągania plików śledzonych przez rozszerzenie Git LFS.
1: Usługa Azure DevOps Services obecnie nie obsługuje usługi LFS za pośrednictwem protokołu SSH. Użyj protokołu HTTPS, aby nawiązać połączenie z repozytoriami z plikami śledzonymi przez rozszerzenie Git LFS.
.: Jak mogę użyć lokalizacji klucza bez definicji, czyli nie ~/.ssh/id_rsa i ~/.ssh/id_rsa.pub?
1: Aby użyć klucza przechowywanego w innym miejscu niż domyślne, wykonaj następujące dwa zadania:
Klucze muszą znajdować się w folderze, który można tylko odczytać lub edytować. Jeśli folder ma szersze uprawnienia, protokół SSH nie używa kluczy.
Należy na przykład poinformować protokół SSH o lokalizacji klucza, określając go jako "Tożsamość" w konfiguracji SSH:
Host ssh.dev.azure.com IdentityFile ~/.ssh/id_rsa_azure IdentitiesOnly yes
Ustawienie IdentitiesOnly yes
zapewnia, że protokół SSH nie używa żadnej innej dostępnej tożsamości do uwierzytelniania. To ustawienie jest szczególnie ważne, jeśli jest dostępna więcej niż jedna tożsamość.
.: Mam wiele kluczy SSH. Jak mogę użyć poprawnego klucza SSH dla usługi Azure DevOps?
Uwierzytelnianie: Zazwyczaj podczas konfigurowania wielu kluczy dla klienta SSH klient próbuje uwierzytelnić się przy użyciu każdego klucza sekwencyjnie, dopóki serwer SSH nie zaakceptuje jednego.
Jednak takie podejście nie działa z usługą Azure DevOps ze względu na ograniczenia techniczne związane z protokołem SSH i strukturą adresów URL protokołu SSH usługi Git. Usługa Azure DevOps akceptuje pierwszy klucz dostarczony przez klienta podczas uwierzytelniania. Jeśli ten klucz jest nieprawidłowy dla żądanego repozytorium, żądanie kończy się niepowodzeniem bez próby użycia innych dostępnych kluczy, co powoduje następujący błąd:
remote: Public key authentication failed.
fatal: Could not read from remote repository.
W przypadku usługi Azure DevOps należy skonfigurować protokół SSH do jawnego użycia określonego pliku klucza. Procedura jest taka sama jak w przypadku używania klucza przechowywanego w lokalizacji niezdefaultowej. Poinformuj protokół SSH o użyciu poprawnego klucza SSH dla hosta usługi Azure DevOps.
.: Jak mogę używać różnych kluczy SSH dla różnych organizacji w usłudze Azure DevOps?
Uwierzytelnianie: Usługa Azure DevOps w sposób ślepy akceptuje pierwszy klucz, który klient udostępnia podczas uwierzytelniania. Jeśli ten klucz jest nieprawidłowy dla żądanego repozytorium, żądanie zakończy się niepowodzeniem z powodu następującego błędu:
remote: Public key authentication failed.
fatal: Could not read from remote repository.
Ten błąd jest spowodowany tym, że wszystkie adresy URL usługi Azure DevOps współużytkują tę samą nazwę hosta (ssh.dev.azure.com
), co uniemożliwia domyślne rozróżnienie między nimi za pomocą protokołu SSH. Można jednak zmodyfikować konfigurację protokołu SSH, aby odróżnić różne organizacje, podając odrębne klucze dla każdej z nich. Użyj aliasów hostów, aby utworzyć oddzielne Host
sekcje w pliku konfiguracji SSH.
# 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.
# 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
Następnie, zamiast używać rzeczywistych adresów URL, poinformuj usługę Git, że chcesz używać tych adresów URL dla każdego repozytorium jako zdalnego, zastępując nazwę hosta w istniejących zdalnych devops_fabrikam
devops_contoso
i odpowiednio . Przykładowo, git@ssh.dev.azure.com:v3/Fabrikam/Project1/fab_repo
stanie się git@devops_fabrikam:v3/Fabrikam/Project1/fab_repo
.
.: Jakie powiadomienia mogą otrzymywać moje klucze SSH?
1: Za każdym razem, gdy zarejestrujesz nowy klucz SSH w usłudze Azure DevOps Services, otrzymasz powiadomienie e-mail informujące o dodaniu nowego klucza SSH do konta.
.: Co zrobić, jeśli uważam, że ktoś inny niż ja dodaje klucze SSH na moim koncie?
1: Jeśli otrzymasz powiadomienie o rejestracji klucza SSH, którego nie zainicjowano, twoje poświadczenia mogą zostać naruszone.
Następnym krokiem będzie zbadanie, czy twoje hasło zostało naruszone. Zmiana hasła jest zawsze dobrym pierwszym krokiem do obrony przed tym wektorem ataku. Jeśli jesteś użytkownikiem firmy Microsoft Entra, skontaktuj się z administratorem, aby sprawdzić, czy twoje konto zostało użyte z nieznanego źródła/lokalizacji.
.: Co zrobić, jeśli nadal pojawia się monit o podanie hasła i GIT_SSH_COMMAND="ssh -v" git fetch
jest wyświetlany no mutual signature algorithm
lub corresponding algo not in PubkeyAcceptedAlgorithms
?
1: Niektóre dystrybucje systemu Linux, takie jak Fedora Linux, mają zasady kryptograficzne wymagające silniejszych algorytmów podpisu SSH niż obsługiwane przez usługę Azure DevOps (od stycznia 2021 r.). Istnieje otwarte żądanie funkcji, aby dodać tę pomoc techniczną.
Problem można obejść, dodając następujący kod do konfiguracji SSH (~/.ssh/config
):
Host ssh.dev.azure.com vs-ssh.visualstudio.com
PubkeyAcceptedKeyTypes +ssh-rsa
Napiwek
W przypadku własnych wystąpień serwera Azure DevOps Server i serwera TFS użyj odpowiedniej nazwy hosta w Host
wierszu zamiast ssh.dev.azure.com vs-ssh.visualstudio.com
.