Force RSA key support for Azure DevOps Git SSH

Photo by Markus Spiske on Unsplash

If you're using Azure DevOps Git SSH you have to use an RSA key. This is because Azure DevOps doesn't support the newer ed25519 keys (at time of writing). However newer versions of OpenSSH prefer ed25519 keys over RSA keys.

You have to force OpenSSH to use RSA keys for Azure DevOps Git SSH. You can do this by setting HostKeyAlgorithms and PubkeyAcceptedKeyTypes in your ~/.ssh/config file:

Host myazuredevops
HostName ssh.dev.azure.com
User myusername
IdentityFile ~/.ssh/id_rsa
AddKeysToAgent yes
PreferredAuthentications publickey
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
IdentitiesOnly yes

Then you can connect to azure with git clone git@myazuredevops:myorg/myrepo.git. Just replace ssh.dev.azure.com with myazuredevops.