Skip to content

SSH-RSA Host Key Error: Fixing "no matching host key type found" ​

If you're encountering the error "no matching host key type found. Their offer: ssh-rsa" when using Git or SSH, this guide will help you understand and resolve the issue.

Problem Overview ​

This error occurs when your SSH client (version 8.2 or later) attempts to connect to a server that only supports the outdated ssh-rsa host key algorithm. Modern SSH clients have deprecated this algorithm due to security vulnerabilities in the SHA-1 hash function it uses.

Why This Happens ​

The ssh-rsa signature scheme uses the SHA-1 algorithm, which is now considered cryptographically weak. Major OpenSSH versions starting with 8.2 (released February 2020) disabled this algorithm by default for security reasons.

Many Azure DevOps Services instances and some older servers still only offer this deprecated algorithm, causing compatibility issues with modern SSH clients.

Solutions ​

Temporary Workaround: Update SSH Configuration ​

The most common solution is to modify your SSH configuration to temporarily re-enable the deprecated algorithm:

sh
# Edit or create the config file
nano ~/.ssh/config
powershell
# Using PowerShell (run as admin if needed)
notepad $env:USERPROFILE\.ssh\config

Add the following configuration, replacing your-hostname with your actual server domain:

ssh-config
Host your-hostname
    HostName your-hostname
    User git
    IdentityFile ~/.ssh/id_rsa
    IdentitiesOnly yes
    PubkeyAcceptedAlgorithms +ssh-rsa
    HostkeyAlgorithms +ssh-rsa

Security Note

This workaround reduces your connection security. Use it only temporarily and encourage the server administrator to update their SSH implementation.

Platform-Specific Configurations ​

Azure DevOps ​

For Azure DevOps, use this specific configuration:

ssh-config
Host ssh.dev.azure.com
    PubkeyAcceptedAlgorithms +ssh-rsa
    HostkeyAlgorithms +ssh-rsa

Host vs-ssh.visualstudio.com
    PubkeyAcceptedAlgorithms +ssh-rsa
    HostkeyAlgorithms +ssh-rsa

One-Time Command Solution ​

For a single connection without modifying config files:

sh
ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa user@hostname

For Git operations:

sh
GIT_SSH_COMMAND="ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa" git pull

NixOS Configuration ​

If you're using NixOS, add this to your configuration.nix:

nix
programs.ssh.extraConfig = ''
  PubkeyAcceptedAlgorithms +ssh-rsa
  HostkeyAlgorithms +ssh-rsa
'';

macOS Specific Notes ​

On macOS, you might need to edit the system-wide SSH configuration instead of the user-specific one:

sh
sudo nano /etc/ssh/ssh_config

Add the same configuration options as shown above.

Best Practices and Recommendations ​

  1. Prefer HTTPS: When possible, use HTTPS instead of SSH for Git operations, especially with Azure DevOps
  2. Contact Support: Report the issue to your service provider and request they support modern algorithms like rsa-sha2-256 or rsa-sha2-512
  3. Temporary Measure: Use the workaround only until the server is updated
  4. Key Verification: Always verify server host keys to prevent man-in-the-middle attacks

Security Considerations ​

The ssh-rsa algorithm is considered weak because SHA-1 is vulnerable to collision attacks. While the risk may be acceptable for some development environments, you should avoid using this workaround for production systems or sensitive data.

Important

This workaround temporarily lowers your SSH connection security. Only use it when necessary and revert once the server supports modern algorithms.

When to Seek Alternative Solutions ​

If you continue to experience issues:

  • Verify your SSH client version with ssh -V
  • Check if you're using the correct SSH executable (some systems have multiple)
  • Consider using a different Git hosting service that supports modern SSH algorithms
  • Use HTTPS as a temporary alternative to SSH

By implementing these solutions, you should be able to resolve the "no matching host key type found" error while maintaining awareness of the security implications.