#ssh-key #public-key #key #github #ssh #utilities #command-line-tool

app keysync

一个实用工具,用于将本地的 authorized_keys 文件与 Github、Gitlab 和 Launchpad 的公钥同步更新

9 个版本 (稳定)

4.0.0 2022年6月13日
3.0.3 2021年1月25日
3.0.0 2020年12月6日
2.0.0 2020年10月22日
0.1.4 2020年10月13日

#2332命令行实用工具

MIT/Apache

2MB
1.5K SLoC

Keysync

一个 SSH 密钥同步实用工具

CI CD Crates.io Crates.io License

目录
  1. 关于
  2. 安装
  3. 使用
  4. 构建和测试
  5. 贡献
  6. 状态
  7. 构建工具
  8. 联系方式
  9. 许可

Keysync Demo

关于

注意:此项目未维护,并且绝对过度设计,有更简单的方法来获取密钥

keysync 是一个命令行实用工具和服务,可以帮助您将本地的 authorized_keys 文件与公钥的主副本保持同步。

目前程序允许从 Github、GitLab、Launchpad 同步,即将支持自定义 URL。它只下载和过滤您尚未在本地拥有副本的密钥。此应用程序可以在运行时作为一次性同步使用,或者作为 systemd 服务在后台自动运行。您可以设置预设间隔或自定义 cron 表达式来更新文件,甚至可以支持多个用户和提供商。

注意:如果电脑进入睡眠/休眠状态,自动作业将失败。systemd 守护进程主要推荐用于服务器。对于个人电脑,建议您在添加公钥时手动运行命令。

警告 如果您使用的 Github、GitLab 或 Launchpad 被入侵,攻击者可以上传他们的密钥来获取对您电脑的访问权限。出于安全考虑,请不要为此程序设置 root 用户,您只是在自找麻烦。

安装

如果您已安装 rust,可以使用 cargo。
需要安装以下包:libsqlite-dev,build-essential,libssl-dev(Debian 名称)
cargoinstall nxcloud

其他打包的二进制文件可在 版本 中找到。

使用

二进制文件名为 keysync

要显示应用程序,请使用 keysync help
使用 keysync <子命令> help 获取该子命令的帮助。

示例

下载 github 上指定用户的公钥。
keysync get<用户名>

从GitLab下载用户公钥,必须提供URL或使用''代替 https://gitlab.com
keysync get--gitlab<url> <用户名>

为用户添加自动作业,其中用户名是Github或GitLab的用户名。
有效的计划有[每小时、每天、每周、每月、自定义]。
keysync设置<用户名> <计划>

为用户添加具有自定义cron计划的自动作业。
keysync设置<用户名>自定义-c<cron>

构建和测试

此存储库是标准的rust项目bin结构。

设置

  • 安装Rust
  • 安装build-essential, libssl-dev, libsqlite3-dev (Linux)
    apt install build-essential libssl-dev libsqlite3-dev (基于Debian)
  • 克隆存储库

编译和运行

Rust支持使用以下命令构建或运行
cargo build 将在 /target/debug/ 中构建可执行文件。
cargo run -- <args> 将构建并运行可执行文件。

测试

使用rust内置的测试框架可以测试所有标准测试。
cargo测试

一些测试可能无法以100%的可靠性完成(例如,它们可能在没有网络访问的情况下失败),这将运行所有被忽略的测试。
cargo测试 ----ignored

文档

Rust内置的文档工具可以生成。
cargodoc

使用默认浏览器打开。
cargodoc --open

贡献

欢迎并鼓励贡献!
贡献的例子可能包括

  • 提交功能请求或错误报告。
  • 请求改进文档。
  • 通过创建pull request来编写代码。

请参阅贡献

状态

开发仍在进行中,正在计划新的功能。
请随时贡献

构建工具

Rust
SQLite

联系方式

Ethan Budd创建
电子邮件: [email protected]

许可

根据以下任一许可证双重许可

依赖项

~37–53MB
~1M SLoC