SSH-KEYCHAIN(8) System Manager's Manual SSH-KEYCHAIN(8)

ssh-keychain.dylibsmartcard/token support library

The ssh-keychain.dylib library is used as a PKCS#11 and Secure Key module replacement for the family of ssh tools. It provides identities from CryptoTokenKit tokens (SmartCards and persistent tokens) to the tools.

By default, all valid (RSA for PKCS#11 and ecdsa256 for Secure Key module) identities from all SmartCards and persistent tokens currently available in the system are provided. Manual configuration of ssh-keychain.dylib is required if there is a need to limit which token identities are provided. The public key hash is used to select which identities should be provided. This hash is usually in hexadecimal string form, without the leading . To determine the hash for identity use the sc_auth list-ctk-identities and sc_auth identities commands or attribute from output.

Configuration passed through the environment always takes precedence over the configuration file. The variable is used to specify hashes. It should contain a semicolon-separated list of public key hashes of certificates which will be provided to the ssh tools.

If no enviroment variable configuration is provided, ssh-keychain.dylib looks for a configuration file located at . This file is a standard property-list with a dictionary root object. It should contain the key with a value that is either a string or an array of strings. If a string, then the expected value is semicolon-separated list of public key hashes like the environment variable. If the value is an array, then each hash is an array entry.

~/.ssh/sshkeychain.plist
 


KEYCHAIN_CERTIFICATES="AE31125DA4AAA294A4FED97B815D7F8DD1A78FF3;168D2C4CDDFCDADD465BAF3E6BCFE8193D8D42D1" ssh -o PKCS11Provider=/usr/lib/ssh-keychain.dylib machine
{ "KeychainCertificates" => [ 0 => "AE31125DA4AAA294A4FED97B815D7F8DD1A78FF3" 1 => "168D2C4CDDFCDADD465BAF3E6BCFE8193D8D42D1" ] }

security(1), ssh-add(1), ssh_config(5), sc_auth(8)

February 10, 2020 Darwin