Project Icon

melt

以助记词方式备份和恢复 SSH 私钥的开源工具

Melt 是一个开源的 SSH 私钥管理工具,通过生成易记的助记词来备份和恢复 ed25519 私钥。它提供命令行界面,支持从私钥生成助记词和从助记词重建私钥。Melt 适用于多种操作系统,可通过常见的包管理器安装。这种方法简化了密钥的备份和恢复过程,同时保障了安全性。

Melt

Melt Mascot
Latest Release Build Status

使用记忆种子短语备份和还原SSH私钥。

Melt example

安装

包管理器

# macOS或Linux
brew install charmbracelet/tap/melt

# Arch Linux (btw)
yay -S melt-bin

# Windows (使用Scoop)
scoop bucket add https://github.com/charmbracelet/scoop-bucket.git
scoop install melt

# Nix
nix-env -iA nixpkgs.melt

# Debian/Ubuntu
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list
sudo apt update && sudo apt install melt

# Fedora/RHEL
echo '[charm]
name=Charm
baseurl=https://repo.charm.sh/yum/
enabled=1
gpgcheck=1
gpgkey=https://repo.charm.sh/yum/gpg.key' | sudo tee /etc/yum.repos.d/charm.repo
sudo yum install melt

您也可以从发行版页面下载二进制文件或软件包。

Go

也可以使用go安装:

go install github.com/charmbracelet/melt/cmd/melt@latest

构建(需要Go 1.17+)

git clone https://github.com/charmbracelet/melt.git
cd melt
go build ./cmd/melt/

用法

CLI用法如下:

# 从SSH密钥生成种子短语
melt ~/.ssh/id_ed25519

# 从标准输入的SSH密钥生成种子短语
cat ~/.ssh/id_ed25519 | melt

# 使用种子短语重建密钥
melt restore ./my-key --seed "种子短语"

# 使用种子短语重建密钥并输出到标准输出
cat words | melt restore -

您还可以通过文件进行输入输出:

melt ~/.ssh/id_ed25519 > words
melt restore ./recovered_id_ed25519 < words

工作原理

这一切都归结于私钥__种子__:

Ed25519密钥开始于32字节(256位)的随机二进制种子(例如对某些随机输入使用SHA256)。然后使用SHA512对种子进行哈希运算,得到64字节(512位),并将其拆分为"左半部分"(前32字节)和"右半部分"。将左半部分修改一些高/低位后,即得到曲线25519私密标量"a"。公钥通过将此秘密标量乘以"B"(生成元),得到32字节/256位的群元素"A"。1

知道这一点后,我们打开密钥并提取其种子,将其用作bip39算法的__熵__,该算法规定:

助记词必须以32位为单位编码熵。熵越多,安全性越高,但句子长度也越长。我们将初始熵长度称为ENT。ENT的允许大小为128-256位。2

这样做,我们就得到了__助记词__单词集。

要还原,我们:

  • 从__助记词__获取__熵__
  • 熵__实际上是密钥__种子,因此我们使用它创建一个SSH密钥对
  • 密钥实际上与备份的密钥相同,因为密钥是相同的。 你可以通过检查公钥指纹来验证密钥,它应该在原始和__还原__的密钥中相同。

注意事项

  • 目前仅支持ed25519密钥。
  • 如果您的公钥有备注(通常是生成它的user@host),这些信息将丢失。 稍后可以手动添加此信息(或任何其他信息)到公钥中,因为它实际上不用于签名/验证。
  • 由于随机块,您的私钥的某些字节可能会发生变化。但密钥实际上是相同的。

还原备注

我们可以使用ssh-keygen为还原的密钥添加备注。

如果您运行以下命令来还原密钥:

melt restore ./my-key --seed "witness shoe deputy celery debate myth \
  title sign dish bone powder velvet reveal midnight blast mobile \
  valid cycle announce valid item interest cinnamon cake"
正在将密钥还原到./my-key和./my-key.pub...
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:

  成功将密钥还原到./my-key和./my-key.pub

您可以验证没有备注:

cat my-key.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKThPEoe20Wi5zAfyI+gTrTMnODbRtYtQRUZYIvfV19C

在还原的密钥上运行此命令:

ssh-keygen -c -C melted-again@charm.sh -f ./my-key
Old comment:
Comment 'melted-again@charm.sh' applied

查看备注已设置:

cat my-key.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKThPEoe20Wi5zAfyI+gTrTMnODbRtYtQRUZYIvfV19C melted-again@charm.sh

反馈

我们很乐意听到您对这个项目的想法。欢迎随时联系我们!

许可证

MIT


Charm项目之一。

Charm徽标

Charm热爱开源

Footnotes

  1. Warner, Brian. Ed5519密钥如何工作? (2011)

  2. Palatinus, Marek等人. 生成确定性密钥的助记码 (2013)

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号