./security/keychain, Nice ssh-agent front-end

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 2.9.8nb3, Package name: keychain-2.9.8nb3, Maintainer: vins

Keychain helps you to manage SSH and GPG keys in a convenient and secure
manner. It acts as a frontend to ssh-agent and ssh-add, but allows you
to easily have one long running ssh-agent process per system, rather
than the norm of one ssh-agent per login session. Keychain also makes
it easy for remote cron jobs to securely "hook in" to a long-running
ssh-agent process, allowing your scripts to take advantage of key-based
logins.


Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 60.22 KB

Version history: (Expand)


CVS history: (Expand)


   2025-11-08 20:13:40 by Paolo Vincenzo Olivo | Files touched by this commit (4)
Log message:
security/keychain: startkeychain: replace README with man page.
   2025-11-08 18:32:20 by Paolo Vincenzo Olivo | Files touched by this commit (2)
Log message:
keychain: add some comments (NFC)
   2025-11-08 17:55:52 by Paolo Vincenzo Olivo | Files touched by this commit (2)
Log message:
security/keychain: startkeychain: simplify and speed up script

Bump revision.
   2025-11-08 16:55:48 by Paolo Vincenzo Olivo | Files touched by this commit (2)
Log message:
security/keychain: startkeychain: use quiet mode by default
   2025-11-08 14:32:44 by Paolo Vincenzo Olivo | Files touched by this commit (1)
Log message:
keychain: startkeychain: fix formatting and quoting
   2025-11-08 13:36:14 by Paolo Vincenzo Olivo | Files touched by this commit (4)
Log message:
security/keychain: add help script to automate usage

Additionally install bash completions.
Bump revision.
   2025-11-03 17:37:53 by Paolo Vincenzo Olivo | Files touched by this commit (3) | Package updated
Log message:
security/keychain: update to 2.9.8

## keychain 2.9.8 (2 Nov 2025)

This release fixes the release tarball to include all necessary files for \ 
building and using keychain.

Bug fixes:

* Fixed release tarball generation to include bash completion script \ 
(`completions/keychain.bash`),
  Makefile, source files, and other essential components. Previous release \ 
(2.9.7) tarball was
  missing these files.
* Improved tarball generation to use `git archive` as source of truth, \ 
eliminating manual file
  inventory and preventing future omissions.
* Updated release logic to use `dist/` directory for archive generation. GitHub \ 
workflow plumbing
  work for new `/dist` tarball location, associated `Makefile` and CI fixes.

Documentation:

* Added bash completion information to keychain man page (NOTES section).

## keychain 2.9.7 (31 Oct 2025)

This release fixes critical issues with spaces in HOME directories and \ 
usernames, and adds official Git Bash on Windows compatibility.

Bug fixes:

* Fixed keychain failures when HOME directory path contains spaces (e.g., \ 
`C:\Users\John Doe`).
  ([#188](https://github.com/danielrobbins/keychain/issues/188))
* Fixed username detection for usernames containing spaces (e.g., "Mathew \ 
Binkley" on Windows).
  Implemented portable `get_owner()` function using POSIX-defined `ls -ld` \ 
output format with
  intelligent field parsing to distinguish space-in-username from normal \ 
owner/group fields.
* Fixed pidfile generation to properly quote `SSH_AUTH_SOCK` paths containing \ 
spaces while
  leaving `SSH_AGENT_PID` unquoted (numeric value). Rewrote `write_pidfile()` to \ 
use robust
  eval-in-subshell approach for extracting variable values from ssh-agent output.
* All pidfile formats (sh/csh/fish) now correctly handle paths with spaces.
* Fixed ssh-agent invocation to always use `-s` option for Bourne-compatible \ 
output, simplifying
  pidfile generation and improving compatibility across different environments.
  ([#185](https://github.com/danielrobbins/keychain/issues/185))

Testing and quality improvements:

* Added `scripts/test-space-home.sh` - automated test harness that simulates \ 
HOME directories
  with spaces and validates proper handling. Returns proper exit codes for CI \ 
integration.
* Integrated space-in-home test into GitHub Actions release workflow to prevent \ 
regressions.
* Added ShellCheck disable comments with justification for intentional POSIX ls \ 
usage.
* Fixed Unicode arrow characters in comments that caused ShellCheck errors.

New features:

* Added bash completion support (`completions/keychain.bash`) with intelligent \ 
context-aware
  completion for command-line options, SSH keys, GPG keys, and full `--extended` \ 
mode support.
  Based on work by @mikkoi with significant enhancements for keychain 2.9.x features:
  - Dynamically parses `keychain --help` for up-to-date option completion
  - Completes SSH key names from `~/.ssh/*.pub` files
  - Completes GPG key IDs (8-character short format)
  - `--extended` mode: `sshk:<tab>`, `gpgk:<tab>`, \ 
`host:<tab>` with prefix completion
  - Detects hostnames from `~/.ssh/config` for `host:` completion
  - ShellCheck compliant
  ([#186](https://github.com/danielrobbins/keychain/issues/186))
* Added Makefile targets: `install-completions` and `uninstall-completions` for \ 
optional
  bash completion installation (separate from default install target).
* Updated RPM spec file (`keychain.spec.in`) for modern distributions:
  - Modernized description to focus on OpenSSH and GnuPG (removed obsolete \ 
ssh.com/Sun SSH)
  - Updated dependencies: `sh-utils` → `coreutils`, added `Recommends: \ 
bash-completion`
  - Added bash completion installation to RPM package

Documentation:

* Updated keychain.pod with detailed implementation notes for space handling, \ 
POSIX compliance,
  and the robust eval approach used in pidfile generation.
* Standardized option ordering in keychain.pod to follow Unix convention (short \ 
option first,
  then long option), ensuring compatibility with bash completion regex patterns.
* Added comprehensive COMPATIBILITY section to keychain.pod documenting:
  - Minimum OpenSSH version (7.3+) and supported features
  - GnuPG 2.1+ requirements for gpg-agent integration
  - Shell compatibility (Bourne/POSIX, csh/tcsh, fish)
  - **Git Bash (MSYS2) for Windows** - officially documented as supported platform
  - Legacy SSH implementation status (SunSSH, ssh.com)
  - Systemd user environment integration
  - Spaces in HOME and paths handling details
* Updated README.md with bash completion installation instructions for both \ 
system-wide
  and user-only installations.
   2025-10-12 07:25:16 by Paolo Vincenzo Olivo | Files touched by this commit (2) | Package updated
Log message:
security/keychain: update to 2.9.6

Documentation/branding release (no functional code changes):

	* Updated references in wiki to reflect the new official home of
	  Keychain at https://github.com/danielrobbins/keychain.
	* Consolidate historical references; retain only intentional archival
	  note(s).

Additional release engineering improvements:

	* Add release automation helpers: Makefile release (create) and
	  release-refresh (asset replace), plus scripts under scripts/ and
	* GitHub Actions workflow to build artifacts on tag push (staging
	  only).
	* Add docs/release-steps.md to formalize release process (numeric tags
	  only, assets: tarball, wrapper script, man page).
	* Orchestrated release flow (make release / make release-refresh) now
	  enforces:

		- Mandatory CI (Debian container) artifact fetch for the tag.
		- Normalized comparisons:
			> keychain – raw sha256.
			> keychain.1 – raw sha256; on mismatch, re-compare with
			  Pod::Man first line stripped.
			> Tarball – internal file list + per-file sha256 (man page
			  internally normalized) ignoring tar/gzip metadata.
		- If (and only if) all artifacts match (raw or normalized) CI
		  artifacts are used DIRECTLY for publication; local artifacts are
		  never overwritten (kept for audit).
		- Any real content mismatch aborts unless KEYCHAIN_FORCE_LOCAL=1
		  is explicitly set (single override; KEYCHAIN_ADOPT_CI removed).
		- Copy/paste diff command hints emitted on mismatch for rapid
		  investigation.
		- Asset path indirection via exported variables prevents local
		  file mutation, improving auditability.

	* Release notes body automatically extended with a Build Provenance
	  table (sha256 for keychain and keychain.1) plus the tag commit SHA1.
	* Workflow continues to only stage artifacts; publication requires
	  explicit maintainer action (no auto-release on tag push).