SSH-AGENT-FILTER(1)

πŸ’… SSH-AGENT-FILTER β€” bestie's guide to the manual page πŸ’…

okay so this is ssh-agent-filter(1), a User Commands page, and it's genuinely one of the most slay little security tools out there. sit down, grab a strawberry πŸ“, and let me tell you about the filter that keeps your keys out of the wrong hands.


✨ NAME ✨

ssh-agent-filter β€” a filtering proxy for ssh-agent, meant to be forwarded to untrusted servers πŸ¦‹

no cap, that's the whole point. you hand a server a filtered view of your agent instead of the real thing. iconic behaviour honestly.


🌸 SYNOPSIS 🌸

ssh-agent-filter [ OPTIONS ]

that's it. that's the whole command. it takes options and vibes.


πŸ’– DESCRIPTION πŸ’–

so ssh-agent-filter serves up the unix domain socket interface of an ssh-agent. like, the same interface β€” nobody on the other end can tell the difference. by default it forks and outputs shell code setting SSH_AUTH_SOCK and SSH_AGENT_PID, exactly like ssh-agent does. same energy, different girl. ✨

it filters each request according to its command line options. so whatever you allow is what gets through β€” everything else? not invited to the party. πŸ’…

here's the important bit, and I need you to actually read this one: no crypto operations are done by ssh-agent-filter. none. zero. it doesn't touch your keys like that. all of that gets delegated to the upstream ssh-agent. this girl is a bouncer, not a locksmith. πŸŽ€

also: ssh-agent-filter is not meant to be used directly, but through afssh. so like, don't text it directly, go through its friend.


πŸ‘‘ OPTIONS πŸ‘‘

every single one, bestie. no skipping.

  • -A, --all-confirmed β€” allow all other keys, but with confirmation. so it's a yes, just a yes-with-a-question-first. πŸ™ˆ
  • -c, --comment arg β€” the key is specified by its comment.
  • -C, --comment-confirmed arg β€” the key is specified by its comment, with confirmation.
  • -d, --debug β€” show some debug info, and don't fork. (forking is cancelled, we're staying right here.)
  • -f, --fingerprint arg β€” the key is specified by the pubkey's hex-encoded md5 fingerprint.
  • -F, --fingerprint-confirmed arg β€” the key is specified by the pubkey's hex-encoded md5 fingerprint, with confirmation.
  • -h, --help β€” print this help message. the classic. 🫢
  • -k, --key arg β€” the key is specified by the base64-encoded pubkey.
  • -K, --key-confirmed arg β€” the key is specified by the base64-encoded pubkey, with confirmation.
  • -n, --name arg β€” a name for this instance of ssh-agent-filter, for confirmation purposes. give her a name, she deserves one. 🌸
  • -V, --version β€” print version information.
notice a pattern? every "specify a key" option has a capital-letter twin that adds with confirmation. lowercase = just let it through. uppercase = ask me first. that's the entire personality of this tool and I'm obsessed. πŸ’–

🌈 ENVIRONMENT 🌈

  • SSH_AUTH_SOCK β€” socket of the upstream ssh-agent. (your real agent, the one doing the actual work.)
  • SSH_ASKPASS β€” command to run for confirmation questions. this is who gets asked when a -confirmed option needs a yes. ✨

⭐ AUTHOR ⭐

written by Timo WeingΓ€rtner. king behaviour, fr fr. πŸ‘‘


πŸŽ€ REPORTING BUGS πŸŽ€

found a bug? report it to the Debian BTS at https://bugs.debian.org/ or by mail to timo@tiwe.de. be nice about it, bugs are just features that didn't get enough sleep. πŸ’€


πŸ¦‹ SEE ALSO πŸ¦‹


and that's the whole page, bestie. this was ssh-agent-filter, version 0.5.3, dated March 2026 β€” go forth and filter responsibly. mwah πŸ’…πŸ’–βœ¨

πŸ“¦ where this page comes from