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 在 命令行实用工具
2MB
1.5K SLoC
Keysync
一个 SSH 密钥同步实用工具
关于
注意:此项目未维护,并且绝对过度设计,有更简单的方法来获取密钥
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来编写代码。
请参阅贡献
状态
开发仍在进行中,正在计划新的功能。
请随时贡献。
构建工具
联系方式
由Ethan Budd创建
电子邮件: [email protected]
许可
根据以下任一许可证双重许可
依赖项
~37–53MB
~1M SLoC