【免费下载链接】kr
DEPRECATED A dev tool for SSH auth + Git commit/tag signing using a key stored in Krypton.
⚠️先说重点:
kr项目已标记为DEPRECATED(不再维护),开发已迁移至 Akamai 的新项目。本文仍基于官方文档整理安装与配对方法,适合想了解手机密钥认证(手机签名 SSH 登录)原理和流程的开发者参考。
kr是 Krypton 提供的开发者命令行工具,核心功能有两个:用存放在手机上的密钥完成 SSH 认证,以及用该密钥对 Git commit / tag 进行 PGP 签名。私钥永远保存在 Krypton 手机 App(iOS / Android)中,每次认证时由后台守护进程krd将请求转发到手机,由你手动点确认——私钥永远不会离开手机。
一、安装前准备:系统要求与依赖检查
在开始之前,先确认你的环境满足以下条件:
| 条件 | 要求 |
|---|---|
| 操作系统 | macOS 10.10+,或 64 位 Linux(Debian、RHEL、CentOS、Fedora,需systemd) |
| Go 语言 | Go 1.13+(源码安装必需) |
| 手机 | 一台已安装 Krypton App 的 iOS 或 Android 手机,且电脑与手机均能联网 |
📌 项目说明见 README.md,构建依赖管理使用 go modules,无需手动处理依赖包。
💡 小技巧:Linux 下
make会自动检测发行版,识别逻辑写在 install/os.sh 中,支持 Debian、Fedora、CentOS、RHEL、Arch、SUSE、FreeBSD 等。
二、快速安装kr:一条 git clone + 三条命令搞定
1. 克隆仓库并编译安装
git clone https://gitcode.com/gh_mirrors/kr/kr cd kr make installmake install会依次构建 4 个可执行文件并安装到系统目录(Linux 下默认/usr/bin,macOS 下为/usr/local/bin,规则见 Makefile):
kr— 主命令行工具,控制一切(配对、签名、查看公钥等)krd— 后台守护进程(daemon),充当 SSH agent,把签名请求转发给手机krssh— 用于 SSH 连接的代理程序krgpg— 对接 Git 的 gpg 接口,负责 commit / tag 的 PGP 签名
2. 启动 krd 守护进程
make start这一步会启动krd常驻进程。不同系统的机制不同:
- macOS:自动把 LaunchAgent 配置复制到
~/Library/LaunchAgents/(模板文件见 install/macos/share_ext/co.krypt.krd.plist),开机自启; - Linux(systemd):以当前用户身份生成 systemd 服务(模板见 install/systemd-service-as-current-user.sh)。
krd启动后会监听 3 个本地 UNIX socket,分别用于控制命令、SSH agent 与主机认证(源码:src/krd/main.go)。如果守护进程异常,随时用kr restart重启即可。
三、kr pair 配对 Krypton 手机App:扫码即连
这是新手最常卡住的一步,跟着下面 3 步走:
第 1 步:确保 SSH 配置被自动修改
运行kr pair时,kr会自动往~/.ssh/config追加 Krypton 配置块(修改前会先备份为~/.ssh/config.bak.kr),实现见 src/kr/sshconfig.go。核心内容大致如下:
# Added by Krypton Host * IdentityAgent ~/.kr/krd-agent.sock ProxyCommand /usr/bin/krssh %h %p IdentityFile ~/.ssh/id_krypton如果终端弹出 “Automatically configure SSH?” 提示,直接输入
y回车即可。
第 2 步:执行配对,用手机扫码
kr pair终端会输出一个二维码,提示语为:
Scan this QR Code with the Krypton mobile app to connect it with this workstation.
打开 Krypton 手机 App,扫描该二维码。若二维码在终端里显示不完整,可放大窗口或调小字体(配对逻辑见 src/kr/kr.go 中的pairOver函数)。
第 3 步:看到 "Paired successfully" 即成功
Paired successfully with identity ssh-rsa AAAAB3... # 你的 SSH 公钥⚠️ 常见报错处理:
Could not connect to Krypton daemon→ 执行kr restart重新拉起krd后重试;Pairing failed, ensure your phone and workstation are connected to the internet→ 检查手机和电脑是否都能上网(配对依赖云端中转);- 已经配对过再执行→ 会提示 “Already paired, unpair current session?”,回复
y即可强制重新配对(等价于kr pair --force)。
四、配对之后:kr 常用命令速查表
配对成功后,下面这些命令会大幅简化日常操作(全部命令定义在 src/kr/kr.go 中):
| 命令 | 作用 |
|---|---|
kr me | 打印你的 SSH 公钥(可直接贴到代码托管平台) |
kr copy | 一键把 SSH 公钥复制到剪贴板 |
kr github/kr gitlab | 复制公钥并自动打开对应平台设置页,粘贴添加 |
kr sshconfig | 校验 / 手动修复~/.ssh/config配置 |
kr codesign | 开启 Git commit 自动签名(Git 签名功能入口) |
kr restart | 重启krd守护进程(排查问题的第一选择) |
kr unpair | 解除当前电脑与手机的配对 |
kr upgrade | 升级本机 Krypton |
kr transfer | 授权另一台 Krypton 手机继承所有已配置服务器 |
kr env | 查看可用环境变量(如KR_SKIP_SSH_CONFIG=1跳过自动改 SSH 配置) |
kr uninstall | 彻底卸载(会先备份再清理~/.ssh/config配置块) |
🔍 例如,想确认 SSH 配置是否正确,直接运行:
kr sshconfig正常会输出绿色提示:Krypton ▶ SSH already configured ✔。
五、进阶:让 Git Commit 也用手机密钥签名
配对只是第一步,kr的另一大卖点是Git Commit/Tag 签名。执行:
kr codesign它会完成一整套接入流程:检查 Git 是否已配置user.name/user.email(未配置会报错并提示先执行git config --global user.name和user.email)、向手机请求生成 PGP 公钥、把公钥加入本地 gpg 信任列表,并询问你是否开启 commit 自动签名(kr codesign on/kr codesign off可随时开关)。原理是利用gpg.program指向krgpg程序,相关设计笔记见 gpg-notes.md,实现入口在 src/kr/kr_pgp.go 和 src/krgpg/main.go。
签名后,git push时每次 commit 都会推送到手机上请你确认——谁在提交代码,手机说了算,非常适合对提交完整性敏感的团队。
六、新手常见问题(FAQ)
Q1:make install需要 sudo 吗?需要。Linux 下 Makefile 默认以sudo安装到/usr/bin,macOS 安装到/usr/local/bin。
Q2:配对成功但 SSH 登录还是失败?依次检查:①kr restart;②kr sshconfig确认配置块存在;③ 手机端 Krypton App 是否弹出确认提示(没弹说明请求没送达,检查网络)。
Q3:换手机了怎么办?在新手机上重新配对后,使用kr transfer可把新手机的公钥批量同步到你已部署kr的服务器上。
Q4:这个项目还能长期使用吗?如开头所说,仓库已标记DEPRECATED且停止维护,生产环境建议关注 Krypton 后续的新工具链。本文内容适合学习流程与原理。
总结
整个上手流程其实只有 4 步:克隆安装 →make start起守护进程 →kr pair手机扫码配对 →kr me拿公钥配置到服务器。之后无论是 SSH 登录还是 Git 签名,私钥都安全地留在你的口袋里,手机就是最终的“审批按钮”。📱
【免费下载链接】kr
DEPRECATED A dev tool for SSH auth + Git commit/tag signing using a key stored in Krypton.
相关推荐
如何快速上手Thingino:新手安装配置完整教程 🎥
Thingino是一款功能强大的开源固件,专为Ingenic SoC IP摄像头设计。本教程将为你提供从零开始的完整安装配置指南,让你快速掌握Thingino固
固件嵌入式物联网音视频OpenWash快速上手教程:如何在Android上快速安装开源洗衣机控制App
OpenWash快速上手教程:如何在Android上快速安装开源洗衣机控制App OpenWash(openwash android)是一款运行在 Androi
如何快速上手Obsidian Minimal:新手指南与安装教程
如何快速上手Obsidian Minimal:新手指南与安装教程 Obsidian Minimal是一款专为Obsidian笔记软件设计的无干扰、高度可定制的主
前端设计系统
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考