melt  by charmbracelet

CLI tool for Ed25519 SSH key backup/restore using seed phrases

Created 3 years ago
682 stars

Top 49.7% on SourcePulse

GitHubView on GitHub
1 Expert Loves This Project
Project Summary

Melt provides a command-line tool for backing up and restoring Ed25519 SSH private keys using human-readable seed phrases. It targets developers and system administrators who need a secure and memorable way to manage their SSH keys, offering a robust alternative to storing sensitive key files directly.

How It Works

Melt leverages the Ed25519 key generation process, which starts with a 32-byte random seed. It extracts this seed from an existing SSH private key. The seed is then used as entropy for the BIP39 mnemonic algorithm, converting it into a sequence of words. To restore, the seed phrase is converted back into the original entropy (seed), which is then used to regenerate the Ed25519 key pair. This approach ensures that the restored key is cryptographically identical to the original.

Quick Start & Requirements

  • Install: Via package managers (Homebrew, Scoop, Nix, apt, yum) or go install github.com/charmbracelet/melt/cmd/melt@latest.
  • Build: Requires Go 1.17+.
  • Prerequisites: Ed25519 SSH keys.
  • Docs: https://github.com/charmbracelet/melt

Highlighted Details

  • Supports backup and restore of Ed25519 SSH keys.
  • Uses BIP39 standard for seed phrase generation.
  • Provides CLI for direct key backup and restoration.
  • Allows piping keys to/from standard input/output.

Maintenance & Community

  • Part of the Charm ecosystem.
  • Community feedback welcomed via Twitter and Discord.

Licensing & Compatibility

  • License: MIT.
  • Compatibility: Permissive for commercial use and integration with closed-source projects.

Limitations & Caveats

Currently, only Ed25519 keys are supported. Public key memos (e.g., user@host comments) are not preserved during the backup and must be manually re-added using ssh-keygen -c. Some internal bytes of the private key might differ due to the random block, but the key remains functionally the same.

Health Check
Last Commit

2 days ago

Responsiveness

1 week

Pull Requests (30d)
7
Issues (30d)
0
Star History
17 stars in the last 30 days

Explore Similar Projects

Starred by David Cournapeau David Cournapeau(Author of scikit-learn), Chip Huyen Chip Huyen(Author of "AI Engineering", "Designing Machine Learning Systems"), and
7 more.

repomix by yamadashy

0.7%
19k
CLI tool to pack codebases into AI-friendly formats for LLMs
Created 1 year ago
Updated 1 day ago
Feedback? Help us improve.