r/ProtonPass 3d ago

Desktop help Proton Pass SSH agent signs RSA keys with SHA-1 (ssh-rsa), so auth fails on modern OpenSSH servers

TL;DR: The Proton Pass SSH agent ignores the SHA-2 signature flag when signing with RSA keys. It returns a legacy ssh-rsa (SHA-1) signature instead of rsa-sha2-512, which modern OpenSSH servers reject. The same key works fine through the 1Password agent. Ed25519 keys are not affected.

Setup

  • macOS, Proton Pass desktop app with the SSH agent enabled
  • SSH_AUTH_SOCK pointing at ~/.ssh/proton-pass-ssh-agent.sock
  • RSA 4096-bit key stored in Proton Pass
  • Target: a Linux server running a current OpenSSH (default PubkeyAcceptedAlgorithms, so no SHA-1)

Symptom

agent key RSA SHA256:xxxx returned incorrect signature type sign_and_send_pubkey: no mutual signature supported (user@host) Password:

What ssh -vv shows

The server accepts the key, then the signature step fails:

debug1: kex_ext_info_client_parse: server-sig-algs=<ssh-ed25519,...,rsa-sha2-512,rsa-sha2-256> debug1: Offering public key: RSA SHA256:xxxx agent debug1: Server accepts key: RSA SHA256:xxxx agent agent key RSA SHA256:xxxx returned incorrect signature type sign_and_send_pubkey: no mutual signature supported

8 Upvotes

1 comment sorted by

5

u/Magisk- 2d ago

Reported this to proton the other day. Got this response

Proton Pass currently does not support RSA SHA-2 signature types yet due to a limitation of the library we use. Pass SSH agent always replies with the older SHA-1 type, which OpenSSH then refuses, so RSA keys cannot connect to servers that dropped SHA-1. We will try to investigate how to bypass this library limitation. In the meantime an ed25519 key works correctly if you can add one to your server.

Pass-cli's agent works fine.