8000 GitHub - mbailey/keycutter: FIDO SSH Key creation and management tool
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

mbailey/keycutter

Repository files navigation

alias
Keycutter

Keycutter: Strengthen your SSH key privacy and security

Keycutter simplifies using multiple private SSH keys on multiple devices.

Ever wondered how to contribute to an open-source project on GitHub from an employer managed (i.e. untrusted) laptop, without compromising the security of your personal GitHub account?

Keycutter came out of an attempt to solve this problem but evolved into a tool to improve security by simplifying management and use of FIDO SSH Keys. It consists of:

  • keycutter: A CLI tool for creating FIDO SSH keys and managing SSH config
  • SSH Keytags: A naming convention that removes need for custom SSH configuration
  • SSH configuration: Modular config structure that doesn't require manual editing

While initially created for use with YubiKeys and GitHub, Keycutter supports other FIDO devices and services.

Contents

Features

Project Goals

  • Safe: Don't screw up users SSH keys or config. Confirm and backup changes.
  • Simple: Keep the code and config it generates simple to audit.
  • Solid: Support all the things people use SSH for (e.g. scp, rsync, etc).

Example: SSH access to multiple GitHub accounts

Connect to multiple Github accounts via SSH without custom config:

git clone git@github.com_alex:mbailey/keycutter.git     # Github user @alex
git clone git@github.com_alexwork:mbailey/keycutter.git # Github user @alexwork

No Host entries needed - keycutter automatically routes to the correct host and uses the appropriate key.

Quickstart

# Install Keycutter
$ curl https://raw.githubusercontent.com/mbailey/keycutter/master/install.sh | bash
<snip>
# Create a FIDO SSH Key
$ keycutter create github.com_alex
<snip>
# Use it
$ ssh -T github.com_alex
Confirm user presence for key ECDSA-SK SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
User presence confirmed
Hi alex! You've successfully authenticated, but GitHub does not provide shell access.

Installation

curl https://raw.githubusercontent.com/mbailey/keycutter/master/install.sh | bash

The installer will check prerequisites and guide you through the setup. For detailed installation instructions, platform-specific configuration, and troubleshooting, see the Installation Guide.

Configuration

Keycutter organizes all SSH configuration under ~/.ssh/keycutter/ with a modular structure designed for easy management and security:

  • Agents: Control SSH agent forwarding to specific hosts
  • Hosts: Define host-specific settings and identity files
  • Keys: Store SSH keys using the keytag naming convention
  • Scripts: Helper scripts for SSH operations

See the Configuration Guide for complete details.

Usage

For a comprehensive guide on using Keycutter, see the Tutorial.

To see all available commands, run:

keycutter --help

Updating Keycutter

It's recommended to update keycutter periodically to ensure you have the latest features and bug fixes.

To update an existing installation of Keycutter, use the following command:

keycutter update

This command will:

  1. Pull the latest changes from the Keycutter git repository.
  2. Check and update any requirements.
  3. Confirm whether you want to update files in ~/.ssh/keycutter

Here's an example of what you might see when running the update command:

🔄 Updating Keycutter from git...
Confirm user presence for key ECDSA-SK SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
User presence confirmed
Keycutter is already up to date.
All requirements are met.
Keycutter SSH update complete.

See also

About

FIDO SSH Key creation and management tool

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  
0