#ssh-key #work-in-progress #crates-io #rust-lang #secret-store #private-key #session-store

bin+lib ssh_auth_cargo_publish

使用 SSH 密钥存储和利用 crates.io 的加密 secret_token

1 个稳定版本

1.0.3 2024 年 4 月 30 日

#427 in 命令行界面

MIT 许可证

49KB
357

ssh_auth_cargo_publish

使用 SSH 密钥存储和利用 crates.io 的加密 secret_token
版本:1.0.3 日期:2024-04-30 作者: bestia.dev 仓库: GitHub

work-in-progress rustlang crates-io

License Rust

Lines in Rust code Lines in Doc comments Lines in Comments Lines in examples Lines in tests

标签:#维护 #可用 #rustlang #自动化 #工作流程
我的 GitHub 项目更像是教程而不是成品: bestia-dev 教程.
我推荐使用 CRUSTDE - 容器化 Rust 开发环境 在 Linux 上编写 Rust 项目,与系统隔离。

动机

要使用 cargo publish 访问 crates.io,你需要一个访问 secret_token。
重要:请像对待密码一样处理访问 secret_tokens,并确保其保密性。例如,在凭证管理器中安全地存储您的 secret_tokens。
对普通人来说,访问 secret_tokens 是难以记住的。我们需要将它们存储在某个地方。
此命令存储 crates.io 的 secret_token

cargo login

警告:默认情况下,它们将在文件中存储明文 secret_token:~/.cargo/credentials
好的,我注意到在这个领域有一些发展,现在可以使用“凭证提供者”。

我想使用 SSH 密钥加密来保护这个 secret_token。
我们在创建、管理和保护我们的 SSH 密钥方面已经积累了大量的经验。私钥由我们能够记住并输入的密码短语保护。每次使用 secret_token 都需要用户交互来输入密码短语。非常安全。

如果我们对我们当前会话非常有信心,我们可以将 SSH 密钥存储在 ssh-agent 中,并只输入一次密码短语。
警告:有专门攻击者可能从 ssh-agent 中读取并发现访问 secret_token 而不进行用户交互。请自行决定是否使用此功能。

替换命令

将可执行文件 ssh_auth_cargo_publish 放入你打算使用它的文件夹。
复制后,使用chmod +x ssh_auth_cargo_publish使其可执行。
不要使用cargo publish ...,而是使用ssh_auth_cargo_publish
如果它找到加密的secret_token,将要求您输入私钥的密码短语。否则,它将要求您存储secret_token。

开发细节

在单独的md文件中阅读开发细节:DEVELOPMENT.md

发布变更日志

在单独的md文件中阅读发布变更日志:RELEASES.md

待办事项

之后就可以快乐地编码了...

开源且免费如啤酒

我的开源项目免费如啤酒(MIT许可)。
我热爱编程。
但我也需要喝酒。如果您觉得我的项目和教程有用,请通过捐赠给我买一杯啤酒,链接为PayPal
您知道您当地酒吧啤酒的价格 ;-)
这样我就可以为您的健康免费喝一杯啤酒 :-)
Na zdravje! Alla salute! Prost! Nazdravlje! 🍻

//bestia.dev
//github.com/bestia-dev
//bestiadev.substack.com
//youtube.com/@bestia-dev-tutorials

依赖项

~26–43MB
~749K SLoC