Skip to main content

SSH Agent

Argon includes a built-in SSH agent that serves keys stored in your vault to any SSH client. Private keys are encrypted at rest with envelope encryption — they only exist in memory for the instant a signing operation occurs, then are wiped.

How It Works

Argon implements the SSH agent protocol (the same protocol used by ssh-agent) over a Unix domain socket. When you start the Argon desktop app, the agent starts listening automatically.
The agent implements only the read-only subset of the protocol:

Setup

1. Set the environment variable

Point your shell’s SSH_AUTH_SOCK to the Argon agent socket:
Add this to your ~/.bashrc, ~/.zshrc, or equivalent to make it permanent.

2. Verify the agent is running

This should list the public keys stored in your Argon vault. If Argon is locked or not running, you’ll see an error.

3. Connect to a server

The SSH client will request identities from the Argon agent, and Argon will sign the authentication challenge using the matching key from your vault.

Key Management

SSH keys are stored as vault entries with the type SSH Key. Each entry contains:

Generate a new key

  1. Open the Argon desktop app.
  2. Click the + button next to SSH Keys in the sidebar (or use the item drawer and select the SSH Key tab).
  3. Choose a key type:
    • Ed25519 (recommended) — fast, small keys, modern standard.
    • RSA (4096-bit) — broad compatibility with older systems.
  4. Click Generate Key Pair.
  5. Copy the public key and add it to your server’s ~/.ssh/authorized_keys.
  6. Give the key a name and click Create Item.

Import an existing key

  1. Open the SSH Key tab in the item drawer.
  2. Expand Import existing key.
  3. Paste the PEM private key and the public key.
  4. Click Create Item.
The private key is encrypted client-side before it touches the wire — the server stores only ciphertext.

View and copy public keys

Select any SSH key entry in the vault to see its public key, fingerprint, and key type. Click Copy Public Key to copy the authorized_keys line to your clipboard.

Supported Key Types

Signature Algorithm Support

The agent supports algorithm negotiation for RSA keys: Ed25519 keys always use their native ssh-ed25519 algorithm.

Git Commit Signing

You can use Argon SSH keys to sign Git commits:
Git will use the Argon agent (via SSH_AUTH_SOCK) to sign commits. The private key never leaves the vault.

Security Model

Comparison with ssh-agent


Socket Path

The socket is created when the Argon desktop app starts and removed when it shuts down. If a stale socket exists from a previous crash, Argon removes it automatically on startup.

Troubleshooting

”agent refused operation” or “no keys”

  • Ensure the Argon desktop app is running and unlocked.
  • Verify SSH_AUTH_SOCK points to ~/.argon/agent.sock.
  • Check that you have at least one SSH key entry in your vault.

”permission denied” on the socket

  • The socket is created with 0600 permissions. Ensure you’re running SSH as the same user that started Argon.

Key not offered to server

  • Run ssh-add -l to list keys the agent is serving.
  • Ensure the public key is in the server’s authorized_keys file.
  • If using RSA, ensure the server supports the key size (some older servers reject 4096-bit keys).