FUK(1) "git.sr.hr/~hauleth/fuk" "General Commands Manual" # NAME fuk - Fetch User Keys # SYNOPSIS *fuk* -h++ *fuk* --help++ *fuk* [--format (json|toml|csv)] _config.toml_ # DESCRIPTION Tool for fetching public SSH keys from various sources. # CONFIGURATION Configuration uses TOML file format. In root it requires _entry_ field which must be a list of entries to be present in output. Each entry must have at least 2 keys: *name* Name of output field. *keys* List of sources for the keys. See _SOURCES_ # SOURCES *raw* Takes as a value list of public SSH keys. These keys will be printed in the output as is. *host* Hostnames that will be passed to _ssh-keyscan_(1). *http* Takes _url_ as and argument, with URL pointing to the HTTP resource that will contain SSH keys. *github*, *gitlab*, *sourcehut*, *codeberg* Each of these are shortcuts for *http* entries to provide default _url_ for equivalent entries. In order these would be _github.com_, _gitlab.com_, _meta.sr.ht_, and _codeberg.org_. *tangled* Support for _tangled.sh_ keys stored in the ATProto profile. Accepts either string, which should be either DID or handle (with or without preceding _@_ sign), or a structure with `handle` key and optional _host_ key. Default host is _https://bsky.social_. Example configuration: ``` [[entry]] name = "hauleth" keys = [ { github = "hauleth" }, { sourcehut = "~hauleth" } ] [[entry]] name = "sourcehut" keys = [ { hosts = [ "git.sr.ht", "hg.sr.ht" ] } ] ``` # OUTPUT _fuk_ prints result to stdout in selected format. Keys will be deduplicated by algorithm and key, but the comment *will* be ignored when comparing for equality. If comments for duplicated keys are different, then there is no guarantee about comment content. Possible formats - JSON, TOML, CSV. Example output: ``` { "hauleth": [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA...", ], "sourcehut": [ "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNo...", "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA...", "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAB...", ] } ``` # AUTHORS Maintained by Ɓukasz Niemier <~@hauleth.dev>. Sources can be found at https://git.sr.ht/~hauleth/fuk. # BUGS AND PATCHES Report bugs and submit patches to public inbox of maintainer at <~hauleth/public-inbox@lists.sr.ht>. ; vim: noexpandtab