This worked for me
adding a config file in
and adding these lines
Host ssh.dev.azure.com IdentityFile ~/.ssh/my_ssh_private_key IdentitiesOnly yes
This link by @wcoder helped
Q: I have multiple SSH keys. How do I use different SSH keys for different SSH servers or repos?
A: Generally, if you configure multiple keys for an SSH client and connect to an SSH server, the client can try the keys one at a time until the server accepts one.
However, this doesn’t work with Azure DevOps for technical reasons related to the SSH protocol and how our Git SSH URLs are structured. Azure DevOps will blindly accept the first key that the client provides during authentication. If that key is invalid for the requested repo, the request will fail with the following error:
remote: Public key authentication failed. fatal: Could not read from remote repository.
For Azure DevOps, you’ll need to configure SSH to explicitly use a specific key file. One way to do this to edit your
~/.ssh/config file (for example,
C:\Users\jamal\.ssh) as follows:
# 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: # * [email protected]: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`. # * [email protected]: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: # * [email protected]_fabrikam:v3/Fabrikam/Project1/fab_repo # * [email protected]_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 *
- An error is reported when starting sshd in the docker container
- 127.0.1.1 host address in Debian (Ubuntu) hosts file
- Nginx normal user startup configuration error: && springboot-swagger & Unable to infer base url
- Windows Azure Developer Guidance Map
- [Solved] Service Fabric VMExtensionProvisioningError Error: Multiple VM extensions failed to be provisioned on the VM
- [azure environment] notification hub failed to create policy: 500 internal server error occurred
- Mac remote service repair: warning: remote host identification has changed!
- Git OpenSSH Upgrade Error: Unable to negotiate with 220.127.116.11 port 22: no matching host key type found. Their offer: ssh-rsa
- Redis: How to Use the command to delete keys in batches