Install
One wizard. One admin prompt.
keyward is pre-release: there is no public download yet. These are the steps the first release will use, and what you need ready.
Requirements
- Windows 11 with Windows OpenSSH (built in). Git for Windows works once pointed at Windows' ssh; setup does that.
- Linux with systemd, X11 or Wayland for the manager, and
libfido2for security keys (already installed wherever OpenSSH is). Thelibfido2udev rules give you access to the key. - A FIDO2 security key is optional. Any key with hmac-secret unlocks the vault; hardware-held SSH keys need Ed25519 support (YubiKey 5 firmware 5.2.3 or later). Set a FIDO2 PIN on it first.
- Storage: a vault file anywhere you like, or 17 MiB for its own partition owned by a root-only service. On a dual boot, one partition serves both operating systems.
Windows
Run the manager
Keep
keyward.exeandkeyward-manager.exetogether and run the manager. With nothing installed it opens setup.Choose storage
A new partition (setup shrinks an NTFS volume by 17 MiB), an existing keyward partition, or a vault file. One UAC prompt installs to
C:\Program Files\keyward, registers thekeyward-storeservice and thekeyward-agentsign-in task, setsSSH_AUTH_SOCK, points Git at Windows OpenSSH and stops the built-in ssh-agent.Create the vault
Choose a passphrase, write down the 24-word recovery phrase it shows once, enrol your YubiKey, and import the keys found in
.sshon both operating systems.Use ssh as before
New terminals pick up
SSH_AUTH_SOCK. The first login to each server may ask you to approve. Once logins work through the agent, delete the private key files and keep the.pub.
Linux
Run the manager as yourself
Root parts run through one
pkexecscript: programs into/usr/local/bin, config in/etc/keyward, thekeyward-storesystemd unit.Choose storage
A vault file, an existing keyward partition (make it from the Windows side on a dual boot), or unallocated space on a GPT disk for a new one.
Create the vault
Same as Windows: passphrase, recovery phrase, YubiKey, import. The agent is a systemd user service and
SSH_AUTH_SOCKis set throughenvironment.d, so it applies at next sign-in.Lock on screen lock
Optional: a small user unit runs
keyward lockwhen the screen locks or the machine sleeps. See the docs.
Pointing ssh at the agent
keyward env prints the line for your shell.
# Linux
export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/keyward/agent.sock
# Windows (PowerShell; setup sets this as a user variable)
$env:SSH_AUTH_SOCK = '\\.\pipe\keyward-agent-<user>'
Windows OpenSSH ignores a pipe path in IdentityAgent, so the environment variable is the way. Git for Windows ships its own ssh that can't talk to pipes; setup sets core.sshCommand to Windows' ssh.
Verifying a download
Uninstall
Windows: Settings → Apps → keyward. Linux: /usr/local/share/keyward/uninstall.sh. Both leave the vault partition or file alone, and say where it is.