Bagikan melalui


Menggunakan autentikasi kunci SSH

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Anda dapat terhubung ke repositori Git melalui SSH di macOS, Linux, atau Windows untuk terhubung dengan aman dengan Azure DevOps.

Penting

URL SSH telah berubah, tetapi URL SSH lama terus berfungsi. Jika Anda sudah menyiapkan SSH, perbarui URL jarak jauh Anda ke format baru:

URL SSH terbaru dimulai dengan ssh.dev.azure.com. URL sebelumnya menggunakan vs-ssh.visualstudio.com.

  • Verifikasi remote mana yang menggunakan SSH. Jalankan git remote -v di shell Anda atau gunakan klien GUI sebagai gantinya.
  • Kunjungi repositori Anda di web dan pilih Kloning.
  • Pilih SSH dan salin URL SSH baru.
  • Di shell Anda, jalankan git remote set-url <remote name> <new SSH URL> untuk setiap remote repositori yang ingin Anda perbarui. Atau, gunakan klien GUI untuk memperbarui URL jarak jauh.

Cara kerja autentikasi kunci SSH

Autentikasi kunci publik SSH berfungsi dengan sepasang asimetris kunci enkripsi yang dihasilkan. Kunci publik dibagikan dengan Azure DevOps dan digunakan untuk memverifikasi koneksi ssh awal. Kunci privat tetap aman dan aman pada sistem Anda.

Menyiapkan autentikasi kunci SSH

Langkah-langkah berikut mencakup konfigurasi autentikasi kunci SSH pada platform berikut menggunakan baris perintah (juga disebut shell):

Catatan

Pada Visual Studio 2017, SSH dapat digunakan untuk menyambungkan ke repositori Azure DevOps Git.

Tip

Di Windows, kami merekomendasikan penggunaan Git Credential Manager atau Token Akses Pribadi.

Langkah 1: Buat kunci SSH Anda

Catatan

Jika Anda telah membuat kunci RSA SSH pada sistem Anda, lewati langkah ini dan konfigurasikan kunci SSH Anda. Untuk memverifikasi ini, buka direktori beranda Anda dan lihat .ssh folder (%UserProfile%\.ssh\ di Windows atau ~/.ssh/ di Linux, macOS, dan Windows dengan Git Bash). Jika Anda melihat dua file bernama id_rsa dan id_rsa.pub masing-masing melanjutkan dengan mengonfigurasi kunci SSH Anda.

Untuk menggunakan autentikasi berbasis kunci, Anda harus terlebih dahulu menghasilkan pasangan kunci publik/privat untuk klien Anda. ssh-keygen.exe digunakan untuk menghasilkan file kunci dan algoritma DSA, RSA, ECDSA, atau Ed25519 dapat ditentukan. Jika tidak ada algoritma yang ditentukan, Ed25519 digunakan.

Catatan

Satu-satunya jenis kunci SSH yang didukung oleh Azure DevOps adalah RSA.

Untuk menghasilkan file kunci menggunakan algoritma RSA yang didukung oleh Azure DevOps (baik RSA-SHA2-256 atau RSA-SHA2-512), jalankan salah satu perintah berikut dari PowerShell atau shell lain seperti bash pada klien Anda:

ssh-keygen -t rsa-sha2-256

Atau

ssh-keygen -t rsa-sha2-512

Output dari perintah harus menampilkan output berikut (di mana username adalah nama pengguna Anda):

Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\username/.ssh/id_rsa):

Anda dapat menekan Enter untuk menerima default, atau menentukan jalur dan/atau nama file tempat Anda ingin kunci Anda dibuat. Pada titik ini, Anda diminta untuk menggunakan frasa sandi untuk mengenkripsi file kunci privat Anda. Frase sandi dapat kosong tetapi tidak disarankan. Frase sandi berfungsi dengan file kunci untuk menyediakan autentikasi dua faktor.

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]-----+

Sekarang Anda memiliki pasangan kunci RSA publik/privat di lokasi yang ditentukan. File .pub adalah kunci publik, dan file tanpa ekstensi adalah kunci privat:

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

Penting

Jangan pernah membagikan konten kunci privat Anda. Jika kunci privat disusupi, penyerang dapat menggunakannya untuk mengelabui server agar berpikir koneksi berasal dari Anda. File kunci privat setara dengan kata sandi dan harus dilindungi dengan cara yang sama.

Langkah 2: Tambahkan kunci publik ke Azure DevOps

Kaitkan kunci publik yang dihasilkan pada langkah sebelumnya dengan ID pengguna Anda.

Catatan

Anda harus mengulangi operasi ini untuk setiap organisasi yang dapat Anda akses dan ingin menggunakan SSH.

  1. Buka pengaturan keamanan Anda dengan menelusuri portal web dan memilih ikon di samping avatar di kanan atas antarmuka pengguna. Pilih kunci publik SSH di menu yang muncul.

    Cuplikan layar yang memperlihatkan item menu kunci publik SSH dan avatar pengguna yang dipilih di Azure DevOps.

  2. Pilih + Kunci Baru.

    Cuplikan layar memperlihatkan akses ke Konfigurasi Keamanan di Azure DevOps.

  3. Salin konten kunci publik (misalnya, id_rsa.pub) yang Anda buat ke bidang Data Kunci Publik.

    Penting

    Hindari menambahkan spasi kosong atau baris baru ke bidang Data Kunci, karena dapat menyebabkan Azure DevOps menggunakan kunci publik yang tidak valid. Saat menempelkan kunci, baris baru sering ditambahkan di akhir. Pastikan untuk menghapus baris baru ini jika terjadi.

    Cuplikan layar memperlihatkan mengonfigurasi Kunci Umum di Azure DevOps.

  4. Berikan deskripsi yang berguna pada kunci (deskripsi ini ditampilkan di halaman kunci publik SSH untuk profil Anda) sehingga Anda dapat mengingatnya nanti. Pilih Simpan untuk menyimpan kunci publik. Setelah disimpan, Anda tidak dapat mengubah kunci. Anda dapat menghapus kunci atau membuat entri baru untuk kunci lain. Tidak ada batasan berapa banyak kunci yang dapat Anda tambahkan ke profil pengguna Anda. Perhatikan juga bahwa kunci SSH yang disimpan di Azure DevOps kedaluwarsa setelah satu tahun. Jika kunci Anda kedaluwarsa, Anda dapat mengunggah kunci baru atau kunci yang sama untuk terus mengakses Azure DevOps melalui SSH.

  5. Pada halaman gambaran umum Kunci Umum SSH, sidik jari server ditampilkan. Catat sidik jari SHA256 untuk digunakan saat Anda pertama kali terhubung ke Azure DevOps melalui SSH.

    Cuplikan layar mengakses konfigurasi keamanan di Azure DevOps Services.

  6. Uji koneksi dengan menjalankan perintah berikut:

    ssh -T git@ssh.dev.azure.com
    

    Jika Anda tersambung untuk pertama kalinya, Anda akan menerima output berikut:

    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])?
    

    Bandingkan sidik jari dengan sidik jari SHA256 yang ditampilkan di halaman Kunci Umum SSH yang disebutkan sebelumnya. Lanjutkan hanya jika cocok!

  7. Masukkan yes untuk melanjutkan. Jika semuanya dikonfigurasi dengan benar, output akan terlihat seperti ini:

     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
    

    Jika tidak, lihat bagian tentang Pertanyaan dan pemecahan masalah.

Langkah 3: Kloning repositori Git dengan SSH

Catatan

Untuk menggunakan SSH dengan repositori yang sebelumnya dikloning melalui HTTPS, lihat memperbarui remote Anda ke SSH.

  1. Salin URL kloning SSH dari portal web. Dalam contoh ini, URL klon SSH adalah untuk repositori dalam organisasi bernama fabrikam-fiber, seperti yang ditunjukkan oleh bagian pertama URL setelah dev.azure.com.

    Cuplikan layar memperlihatkan URL kloning Azure Repos SSH

    Catatan

    Dengan Azure DevOps Services, format untuk URL proyek adalah dev.azure.com/{your organization}/{your project}. Namun, format sebelumnya yang mereferensikan visualstudio.com format masih didukung. Untuk informasi selengkapnya, lihat Memperkenalkan Azure DevOps, Beralih organisasi yang sudah ada untuk menggunakan URL nama domain baru.

  2. Jalankan git clone dari perintah.

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

    Jika Anda tidak menggunakan Agen SSH, Anda diminta untuk memasukkan frasa sandi Anda:

    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.
    

    Jika Anda diminta untuk memverifikasi sidik jari, baca Langkah 2: Tambahkan kunci publik ke Azure DevOps lagi. Untuk masalah lain, baca bagian tentang Pertanyaan dan pemecahan masalah.

Tip

Untuk memanfaatkan SSH secara maksimal, umumnya menggunakan Agen SSH untuk mengelola kunci SSH Anda. Menyiapkan agen berada di luar cakupan artikel ini.

Pertanyaan dan pemecahan masalah

A: Ada dua pesan peringatan berbeda yang dapat melihat:

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.

Atau

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.

Jika Anda memodifikasi konfigurasi SSH untuk menurunkan tingkat pengaturan keamanan untuk Azure DevOps dengan menambahkan yang berikut ini ke file (~/.ssh/config%UserProfile%\.ssh\configdi Windows):

Host ssh.dev.azure.com vs-ssh.visualstudio.com
  HostkeyAlgorithms +ssh-rsa

Hapus baris ini sekarang dan pastikan rsa-sha2-256 dan/atau rsa-sha2-512 diizinkan.

Untuk informasi selengkapnya, lihat posting blog.

T: SSH tidak dapat membuat koneksi. Apa yang harus saya lakukan?

A: Ada beberapa masalah berbeda yang dapat Anda alami:

  • Penggunaan ssh-rsa yang tidak didukung

    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.
    

    Jika Anda memodifikasi konfigurasi SSH untuk menurunkan tingkat pengaturan keamanan untuk Azure DevOps dengan menambahkan yang berikut ini ke file (~/.ssh/config%UserProfile%\.ssh\configdi Windows):

    Host ssh.dev.azure.com vs-ssh.visualstudio.com
       HostkeyAlgorithms +ssh-rsa
    

    Hapus baris ini sekarang dan pastikan rsa-sha2-256 dan/atau rsa-sha2-512 diizinkan.

    Untuk informasi selengkapnya, lihat posting blog.

  • Tidak ada kunci host yang cocok

    Masalah ini seharusnya tidak terjadi di Azure DevOps Service atau pada versi Azure DevOps Server yang lebih baru seperti yang disebutkan dalam posting blog.

    Unable to negotiate with <IP> port 22: no matching host key type found. Their offer: ssh-rsa
    

    Ubah konfigurasi SSH Anda untuk menurunkan tingkat pengaturan keamanan Untuk Azure DevOps dengan menambahkan hal berikut ke ~/.ssh/config file (%UserProfile%\.ssh\config di Windows):

    Host ssh.dev.azure.com vs-ssh.visualstudio.com
       HostkeyAlgorithms +ssh-rsa
    

    Penting

    OpenSSH menghentikan ssh-rsa algoritma tanda tangan kunci publik di versi 8.2 dan menonaktifkannya secara default di versi 8.8.

  • Tidak ada MAC yang cocok

    Unable to negotiate with <IP> port 22: no matching MAC found. Their offer: hmac-sha2-256,hmac-sha2-512
    

    Ubah konfigurasi SSH Anda untuk menurunkan tingkat pengaturan keamanan Untuk Azure DevOps dengan menambahkan hal berikut ke ~/.ssh/config file (%UserProfile%\.ssh\config di Windows):

    Host ssh.dev.azure.com vs-ssh.visualstudio.com
       MACs +hmac-sha2-512,+hmac-sha2-256
    
  • Tidak ada metode pertukaran kunci yang cocok

    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
    

    Ubah konfigurasi SSH Anda untuk menurunkan tingkat pengaturan keamanan Untuk Azure DevOps dengan menambahkan hal berikut ke ~/.ssh/config file (%UserProfile%\.ssh\config di Windows):

    Host ssh.dev.azure.com vs-ssh.visualstudio.com
       KexAlgorithms +diffie-hellman-group-exchange-sha256,+diffie-hellman-group14-sha1,+diffie-hellman-group1-sha1
    

    Penting

    Algoritma diffie-hellman-group1-sha1 pertukaran kunci telah dinonaktifkan secara default di OpenSSH versi 6.9 dan diffie-hellman-group14-sha1 di versi 8.2.

Tip

Untuk instans Azure DevOps Server dan TFS yang dihost sendiri, gunakan nama host yang sesuai di Host baris, bukan ssh.dev.azure.com vs-ssh.visualstudio.com.

T: Bagaimana cara meminta Git mengingat frasa sandi untuk kunci saya?

A: Anda dapat menggunakan Agen SSH. Linux, macOS, dan Windows (dimulai dengan Windows 10 (build 1809) atau dengan menggunakan Git untuk Windows dengan Git Bash) semuanya dikirim dengan Agen SSH. Agen SSH dapat digunakan untuk menyimpan kunci SSH Anda untuk penggunaan berulang. Lihat manual vendor SSH Anda untuk detail tentang cara menggunakannya.

T: Saya menggunakan PuTTY sebagai klien SSH saya dan menghasilkan kunci saya dengan PuTTYgen. Dapatkah saya menggunakan kunci ini dengan Azure DevOps Services?

J: Ya. Muat kunci privat dengan PuTTYgen, buka menu Konversi , dan pilih Ekspor kunci OpenSSH. Simpan file kunci privat lalu ikuti langkah-langkah untuk menyiapkan kunci nondefault. Salin kunci publik Anda langsung dari jendela PuTTYgen dan tempelkan ke bidang Data Kunci di pengaturan keamanan Anda.

T: Bagaimana cara memverifikasi bahwa kunci publik yang saya unggah adalah kunci yang sama dengan kunci lokal saya?

A: Anda dapat memverifikasi sidik jari kunci publik yang diunggah dengan yang ditampilkan di profil Anda melalui perintah berikut yang ssh-keygen dijalankan terhadap kunci publik Anda menggunakan baris perintah. Anda perlu mengubah jalur dan nama file kunci publik jika Anda tidak menggunakan default.

Catatan

Pada Agustus/September 2024, kami bermigrasi dari hash MD5 ke SHA-256. Anda mungkin perlu memilih fungsi yang benar selama periode transisi.

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

Anda kemudian dapat membandingkan tanda tangan dengan tanda tangan di profil Anda. Pemeriksaan ini berguna jika Anda memiliki masalah koneksi atau memiliki kekhawatiran tentang salah menempelkan kunci publik ke bidang Data Kunci saat menambahkan kunci ke Azure DevOps.

T: Bagaimana cara mulai menggunakan SSH di repositori tempat saya saat ini menggunakan HTTPS?

A: Anda perlu memperbarui origin remote di Git untuk mengubah dari HTTPS ke URL SSH. Setelah Anda memiliki URL kloning SSH, jalankan perintah berikut:

git remote set-url origin <SSH URL to your repository>

Perintah Git yang mengakses jarak jauh yang disebut origin menggunakan SSH.

T: Saya menggunakan Git LFS dengan Azure DevOps dan saya mengalami kesalahan saat menarik file yang dilacak oleh Git LFS.

A: Azure DevOps Services saat ini tidak mendukung LFS melalui SSH. Gunakan HTTPS untuk menyambungkan ke repositori dengan file terlacak Git LFS.

T: Bagaimana cara menggunakan lokasi kunci nondefault, yaitu, bukan ~/.ssh/id_rsa dan ~/.ssh/id_rsa.pub?

A: Untuk menggunakan kunci yang disimpan di tempat yang berbeda dari default, lakukan dua tugas ini:

  1. Kunci harus berada dalam folder yang hanya dapat Anda baca atau edit. Jika folder memiliki izin yang lebih luas, SSH tidak menggunakan kunci.

  2. Anda harus memberi tahu SSH lokasi kunci, misalnya, dengan menentukannya sebagai "Identitas" dalam konfigurasi SSH:

    Host ssh.dev.azure.com
      IdentityFile ~/.ssh/id_rsa_azure
      IdentitiesOnly yes
    

Pengaturan IdentitiesOnly yes memastikan bahwa SSH tidak menggunakan identitas lain yang tersedia untuk mengautentikasi. Pengaturan ini sangat penting jika lebih dari satu identitas tersedia.

T: Saya memiliki beberapa kunci SSH. Bagaimana cara menggunakan kunci SSH yang benar untuk Azure DevOps?

A: Umumnya, ketika Anda mengonfigurasi beberapa kunci untuk klien SSH, klien mencoba mengautentikasi dengan setiap kunci secara berurutan sampai server SSH menerimanya.

Namun, pendekatan ini tidak berfungsi dengan Azure DevOps karena kendala teknis yang terkait dengan protokol SSH dan struktur URL Git SSH kami. Azure DevOps menerima kunci pertama yang disediakan oleh klien selama autentikasi. Jika kunci ini tidak valid untuk repositori yang diminta, permintaan gagal tanpa mencoba kunci lain yang tersedia, mengakibatkan kesalahan berikut:

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

Untuk Azure DevOps, Anda perlu mengonfigurasi SSH untuk secara eksplisit menggunakan file kunci tertentu. Prosedur ini sama seperti saat menggunakan kunci yang disimpan di lokasi nondefault. Beri tahu SSH untuk menggunakan kunci SSH yang benar untuk host Azure DevOps.

T: Bagaimana cara menggunakan kunci SSH yang berbeda untuk organisasi yang berbeda di Azure DevOps?

A: Azure DevOps secara membabi buta menerima kunci pertama yang disediakan klien selama autentikasi. Jika kunci tersebut tidak valid untuk repositori yang diminta, permintaan gagal dengan kesalahan berikut:

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

Kegagalan ini karena semua URL Azure DevOps memiliki nama host yang sama (ssh.dev.azure.com), sehingga tidak mungkin bagi SSH untuk membedakannya secara default. Namun, Anda dapat memodifikasi konfigurasi SSH untuk membedakan antara organisasi yang berbeda dengan menyediakan kunci yang berbeda untuk masing-masing. Gunakan alias host untuk membuat bagian terpisah Host dalam file konfigurasi SSH Anda.

# 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

Setelah itu, alih-alih menggunakan URL nyata, beri tahu Git Anda ingin menggunakan URL ini untuk setiap repositori sebagai jarak jauh dengan mengganti nama host di remote yang ada dan devops_fabrikam devops_contoso masing-masing. Misalnya, git@ssh.dev.azure.com:v3/Fabrikam/Project1/fab_repo akan menjadi git@devops_fabrikam:v3/Fabrikam/Project1/fab_repo.

T: Pemberitahuan apa yang mungkin saya terima tentang kunci SSH saya?

A: Setiap kali Anda mendaftarkan Kunci SSH baru dengan Layanan Azure DevOps, Anda menerima pemberitahuan email yang memberi tahu Anda saat kunci SSH baru ditambahkan ke akun Anda.

Contoh pemberitahuan SSH

T: Apa yang harus saya lakukan jika saya percaya bahwa seseorang selain saya menambahkan kunci SSH di akun saya?

A: Jika Anda menerima pemberitahuan pendaftaran kunci SSH yang tidak Anda mulai, kredensial Anda dapat disusupi.

Langkah selanjutnya adalah menyelidiki apakah kata sandi Anda disusupi atau tidak. Mengubah kata sandi Anda selalu merupakan langkah pertama yang baik untuk mempertahankan terhadap vektor serangan ini. Jika Anda adalah pengguna Microsoft Entra, hubungi administrator Anda untuk memeriksa apakah akun Anda digunakan dari sumber/lokasi yang tidak diketahui.

T: Apa yang harus saya lakukan jika saya masih dimintai kata sandi saya dan GIT_SSH_COMMAND="ssh -v" git fetch menunjukkan no mutual signature algorithm atau corresponding algo not in PubkeyAcceptedAlgorithms?

J: Beberapa distribusi Linux, seperti Fedora Linux, memiliki kebijakan kripto yang memerlukan algoritma tanda tangan SSH yang lebih kuat daripada yang didukung Azure DevOps (per Januari 2021). Ada permintaan fitur terbuka untuk menambahkan dukungan ini.

Anda dapat mengatasi masalah ini dengan menambahkan kode berikut ke konfigurasi SSH Anda (~/.ssh/config):

Host ssh.dev.azure.com vs-ssh.visualstudio.com
  PubkeyAcceptedKeyTypes +ssh-rsa

Tip

Untuk instans Azure DevOps Server dan TFS yang dihost sendiri, gunakan nama host yang sesuai di Host baris, bukan ssh.dev.azure.com vs-ssh.visualstudio.com.