#ssh-agent #ssh-client #protocols #interact #pure #write #synchronous

ssh-agent-client-rs

纯 Rust 实现的 ssh-agent 协议。可用于编写与 ssh-agent 交互的客户端。

7 个版本 (重大更改)

0.9.1 2024 年 2 月 27 日
0.9.0 2023 年 10 月 18 日
0.5.0 2023 年 7 月 28 日
0.4.0 2023 年 7 月 25 日
0.1.0 2023 年 5 月 14 日

#656网络编程

Download history 58/week @ 2024-04-15 52/week @ 2024-04-22 34/week @ 2024-04-29 5/week @ 2024-05-13 13/week @ 2024-05-20 21/week @ 2024-05-27 15/week @ 2024-06-03 15/week @ 2024-06-10 11/week @ 2024-06-17 8/week @ 2024-06-24 41/week @ 2024-07-01 12/week @ 2024-07-08 38/week @ 2024-07-15 61/week @ 2024-07-22

每月下载量 153
6 个 Crates 中使用 (直接使用 3 个)

MIT/Apache

26KB
368

ssh-agent-client-rs

build crates.io

ssh-agent-client-rs 是一个使用 draft-miller-ssh-agent-04 中定义的协议与 ssh-agent 交互的纯 Rust 客户端库。

该库的设计目标是提供一个易于使用且经过良好测试的库,可以用于执行与 ssh-agent 交互的最常见任务。API 将始终是同步的,因为这与大多数用例相对应,除非我什么时候变得非常无聊,否则它可能不会是协议的完整实现。但是,欢迎贡献。

它受到了 russh-agent 的启发,但这两个项目没有共享任何代码。特别是这个客户端只暴露了同步 API,这简化了实现和界面。

实现和测试的功能

此客户端实现了协议规范中描述的大部分功能,包括指示 ssh-agent

  • 添加身份,规范中用于密钥对的术语,给定一个私钥
  • 列出身份
  • 根据特定的公钥删除一个身份
  • 删除所有身份
  • 对任意消息进行签名

以下功能尚未实现

  • 添加具有约束条件的身份
  • 使用 SSH_AGENTC_ADD_SMARTCARD_KEY 消息添加智能卡密钥的专用消息。然而,在实践中,至少 resident 类型的智能卡密钥(例如 Yubikey 系列的 5 代)是使用添加身份的常规消息(SSH_AGENTC_ADD_IDENTITY)添加的。

用法

示例中的代码应该很容易理解。基本思路是创建一个Client实例,并调用其公共方法与ssh-agent交互。

许可协议

根据以下任一许可协议授权:

贡献

除非您明确表示,否则根据Apache-2.0许可协议定义的,您有意提交以包含在工作中的任何贡献,将双重许可如上所述,不附加任何额外条款或条件。

依赖关系

~8.5MB
~163K SLoC