sshpk-verify(1)
π sshpk-verify β bestie's guide to checking signatures π
okay so real talk, this is a page from the sshpk Commands manual, and it's about sshpk-verify. it does exactly what it says on the tin: it takes some bytes and a signature and tells you whether that signature actually came from the private half of the SSH public key you handed it. no cap. π«Ά
β¨ NAME β¨
sshpk-verify β verify a signature on data using an SSH key
πΈ SYNOPSYS πΈ
sshpk-verify -i KEYPATH -s SIGNATURE [OPTION...]
π¦ DESCRIPTION π¦
so basically it takes in arbitrary bytes and a Base64-encoded signature, and then it verifies that the signature was produced by the private half of the given SSH public key. that's it, that's the whole vibe. it's giving "trust but verify" and honestly? iconic. π
β EXAMPLES β
watch this, it's so satisfying:
$ printf 'foo' | sshpk-verify -i ~/.ssh/id_ecdsa -s MEUCIQCYp...
OK
$ printf 'foo' | sshpk-verify -i ~/.ssh/id_ecdsa -s GARBAGE...
NOT OK
first one ate and left no crumbs. second one... yeah that's a NOT OK bestie, the signature didn't match. π
π EXIT STATUS π
the exit codes are literally the whole personality of this command:
0β signature validates and matches the key. slay. π1β signature is parseable and the correct length, but it does not match the key, or it's otherwise invalid. so close yet so far π2β the signature or the key could not be parsed. couldn't even read it, embarrassing for the input ngl.3β invalid commandline options were supplied. bestie. read the options. π
π OPTIONS π
-v,--verboseβ print extra information about the key and signature tostderrwhen verifying. it's the "tell me everything" option and honestly we love a yapper.-i KEY,--identity=KEYβ select the key to be used for verification.KEYmust be a relative or absolute filesystem path to the key file. any format supported by thesshpklibrary is supported, including OpenSSH formats and standard PEM PKCS. so many formats, all welcome here π-s BASE64,--signature=BASE64β supplies the base64-encoded signature to be verified. this is the receipts, bestie π§Ύβ¨-f PATH,--file=PATHβ input file to verify instead ofstdin. for when piping isn't the mood.-H HASH,--hash=HASHβ set the hash algorithm to be used for signing. this should be one ofsha1,sha256orsha512. some key types may place restrictions on which hash algorithms may be used (e.g. ED25519 keys can only use SHA-512). so like, check before you commit, iykyk.-t FORMAT,--format=FORMATβ choose the signature format to use, fromasn1,sshorraw(only for ED25519 signatures). theasn1format is the default, as it is the format used with TLS and typically the standard in most non-SSH libraries (e.g. OpenSSL). thesshformat is used in the SSH protocol and by thessh-agent. pick your fighter π₯
π SEE ALSO π
sshpk-sign(1)β the other half of the duo, go say hi
π BUGS π
Report bugs at Github β¨https://github.com/arekinath/node-sshpk/issuesβ©
not me telling you to go file a bug report but like... if you found one, go file one fr fr π«Ά
okay that's the whole page!! this one is from sshpk, dated Jan 2016, and it lives in section 1 as sshpk-verify(1). now go forth and verify some signatures, bestie β you're the main character of this terminal π§π
π¦ where this page comes from
- arch rolling: bower 1.8.14-3 Β· MIT
- arch rolling: phonegap 9.0.0-3 Β· Apache
- arch rolling: yarn 1.22.22-2 Β· BSD-2-Clause
- epel 10: yarnpkg 1.22.22-18.el10_3 Β· BSD-2-Clause
- epel 9: yarnpkg 1.22.22-18.el9 Β· BSD-2-Clause
- fedora 43: magicmirror-module-airnow 1.0.0^20200824gitefddeb3-7.fc43 Β· Apache-2.0 and BSD and ISC and MIT and Unlicense
- fedora 43: yarnpkg 1.22.22-11.fc43 Β· BSD-2-Clause
- fedora 43: yarnpkg 1.22.22-18.fc43 Β· BSD-2-Clause
- fedora 44: magicmirror-module-airnow 1.0.0^20200824gitefddeb3-8.fc44 Β· Apache-2.0 and BSD and ISC and MIT and Unlicense
- fedora 44: yarnpkg 1.22.22-17.fc44 Β· BSD-2-Clause
- fedora 44: yarnpkg 1.22.22-18.fc44 Β· BSD-2-Clause
- nixos 26.05: aonsoku 0.15.0
- nixos 26.05: ares-cli 3.2.3
- nixos 26.05: codefresh 1.0.6
- nixos 26.05: cypress 14.5.4
- nixos 26.05: draupnir 3.1.0
- nixos 26.05: elm-analyse 0.16.5
- nixos 26.05: emuflight-configurator 0.4.3
- nixos 26.05: epgstation 2.6.20
- nixos 26.05: gancio 1.28.2
- nixos 26.05: gatsby-cli 5.16.0
- nixos 26.05: get-google-fonts 1.2.2-unstable-2020-06-30
- nixos 26.05: hedgedoc 1.11.1
- nixos 26.05: hueadm 1.2.1
- nixos 26.05: hyperpotamus 0.39.0
- nixos 26.05: joplin-cli 3.5.1
- nixos 26.05: jsonplaceholder 0.3.3-unstable-2021-06-14
- nixos 26.05: lemmy-ui 0.19.19
- nixos 26.05: lessc 4.6.6
- nixos 26.05: log4brains 1.1.0
- nixos 26.05: manta 5.4.2
- nixos 26.05: mathjax-node-cli 1.0.1
- nixos 26.05: matrix-appservice-irc 4.0.0
- nixos 26.05: matrix-hookshot 7.6.0
- nixos 26.05: meshcentral 1.2.0
- nixos 26.05: meteor 3.4
- nixos 26.05: misskey 2026.10.0
- nixos 26.05: mjolnir 1.9.2
- nixos 26.05: newman 6.2.2
- nixos 26.05: onlykey 5.5.0
- nixos 26.05: opcua-commander 0.40.0
- nixos 26.05: overseerr 1.34.0
- nixos 26.05: pangolin 1.24.0
- nixos 26.05: particle-cli 3.45.0
- nixos 26.05: peerflix-server 0.6.0
- nixos 26.05: popcorntime 0.5.1
- nixos 26.05: postlight-parser 2.2.3
- nixos 26.05: rsshub 0-unstable-2026-05-14
- nixos 26.05: sharkey 2025.4.7
- nixos 26.05: surge-cli 0.23.1
- nixos 26.05: terminal-stocks 1.0.20
- nixos 26.05: thorium-reader 3.3.0
- nixos 26.05: triton 7.18.0
- nixos 26.05: vega-cli 6.2.0
- nixos 26.05: vsc-leetcode-cli-unstable 2021-04-11
- nixos 26.05: vscode-extension-spywhere-guides 0.9.3
- nixos 26.05: vscode-extension-zxh404-vscode-proto3 0.5.5
- nixos 26.05: wiki-js 2.5.312
- nixos 26.05: wrangler 4.93.0
- nixos 26.05: zotero-translation-server-unstable 2023-07-13
- nixpkgs unstable: aonsoku 0.15.0
- nixpkgs unstable: cdktn-cli 0.24.0
- nixpkgs unstable: codefresh 1.0.6
- nixpkgs unstable: deepseek-harness 0.2.1-rc.3
- nixpkgs unstable: draupnir 3.1.0
- nixpkgs unstable: emuflight-configurator 0.4.3
- nixpkgs unstable: epgstation 2.6.20
- nixpkgs unstable: flame 2.4.0
- nixpkgs unstable: gancio 1.28.2
- nixpkgs unstable: gatsby-cli 5.16.0
- nixpkgs unstable: get-google-fonts 1.2.2-unstable-2020-06-30
- nixpkgs unstable: hedgedoc 1.12.0
- nixpkgs unstable: hueadm 1.2.1
- nixpkgs unstable: hyperpotamus 0.39.0
- nixpkgs unstable: joplin-cli 3.7.1
- nixpkgs unstable: jsonplaceholder 0.3.3-unstable-2021-06-14
- nixpkgs unstable: lemmy-ui 0.19.21
- nixpkgs unstable: log4brains 1.1.0
- nixpkgs unstable: manta 5.4.2
- nixpkgs unstable: mathjax-node-cli 1.0.1
- nixpkgs unstable: matrix-appservice-irc 4.0.1
- nixpkgs unstable: matrix-hookshot 7.6.0
- nixpkgs unstable: meshcentral 1.2.0
- nixpkgs unstable: meteor 3.5.2
- nixpkgs unstable: misskey 2026.10.0
- nixpkgs unstable: mjolnir 1.12.1
- nixpkgs unstable: newman 6.2.3
- nixpkgs unstable: onlykey 5.5.0
- nixpkgs unstable: opcua-commander 0.40.0
- nixpkgs unstable: pangolin 1.24.0
- nixpkgs unstable: particle-cli 3.45.0
- nixpkgs unstable: peerflix-server 0.6.0
- nixpkgs unstable: postlight-parser 2.2.3
- nixpkgs unstable: proton 1.0.1
- nixpkgs unstable: rsshub 2026.10.22-8467.7aaf947
- nixpkgs unstable: surge-cli 0.23.1
- nixpkgs unstable: terminal-stocks 1.0.20
- nixpkgs unstable: triton 7.18.1
- nixpkgs unstable: vsc-leetcode-cli-unstable 2021-04-11
- nixpkgs unstable: vscode-extension-ExiaHuang-dictionary 0.0.2
- nixpkgs unstable: vscode-extension-spywhere-guides 0.9.3
- nixpkgs unstable: vscode-extension-zxh404-vscode-proto3 0.5.5
- nixpkgs unstable: wiki-js 2.5.317
- nixpkgs unstable: zotero-translation-server-unstable 2023-07-13
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms