3 个版本
0.1.2 | 2022年11月30日 |
---|---|
0.1.1 | 2022年11月30日 |
0.1.0 | 2022年11月28日 |
#362 在 身份验证
24KB
345 代码行
klucznik
通过例如从 GitHub 同步等方式自动管理您的 ssh 访问密钥。
安装
$ cargo install --locked klucznik
使用
安装二进制文件(可选)
将二进制文件安装到全局可访问的位置
$ sudo install ~/.cargo/bin/klucznik /usr/local/bin/klucznik
作为 authorized_keys
更新器
警告 这将覆盖您的 authorized_keys
文件!
设置类似于以下的 cron 作业
* 12 * * * /usr/local/bin/klucznik --sources https://github.com/<your username>.keys --destination /home/<user>/.ssh/authorized_keys
您可以通过更多标志添加更多源。
或者,使用 ssh-key-dir 来避免覆盖您的 authorized_keys
* 12 * * * /usr/local/bin/klucznik --sources https://github.com/<your username>.keys --destination /home/<user>/.ssh/authorized_keys.d/klucznik
然后配置您的 sshd_config
中的 AuthorizedKeysCommand
以使用 ssh-key-dir
,使 ssh 从该文件夹读取覆盖。
作为 AuthorizedKeysCommand
(实验性!)
更改您的 sshd_config
中的以下设置
AuthorizedKeysCommand /usr/local/bin/klucznik --sources https://github.com/<username>.keys
AuthorizedKeysCommandUser root
路线图
v0.1 '比过度设计的 curl
替换多一点但工作'
- 可通过命令行参数/标志配置
- 从公共 URL 获取 authorized_keys
- 验证是否确实返回了密钥(基本)
- 保存到文件
- 自动 cargo 发布
v0.1.1
- 修复将多个源写入一个文件的问题
- 如果提供了目标,并且文件内容相同,则不要覆盖
- 如果返回的密钥为空,则不要覆盖
v0.2 'curl
与集中配置'
- 删除重复的密钥
- 支持配置文件(远程 + 本地)
- 能够读取/存储特定于主机的配置
v0.3
- 添加了对受验证(私有)URL 的支持
v1
- 改进
AuthorizedKeysCommand
支持(能够使用它而不是ssh-key-dir
)。 - 能够直接从 URL 授权(使用
AuthorizedKeysCommand
而不是authorized_keys
) - 确保缓存数据正确,以便即使在 GitHub/Gitlab 当前无法使用的情况下,仍可以验证。
- 能够在
AuthorizedKeysCommand
中链式调用命令
依赖关系
~4.5MB
~110K SLoC