Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
authkeysync — 🔐 轻量级CLI工具,用于从远程URL同步SSH公钥到本地的 authorized_keys 文件 | Kitploit
工具/GitHubGitHub/eduardolat/authkeysync
身份验证与授权云基础设施安全脚本与自动化配置审计DevSecOps身份验证
GitHubeduardolat/authkeysync

authkeysync

🔐 轻量级CLI工具,用于从远程URL同步SSH公钥到本地的 authorized_keys 文件

查看仓库
288个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

AuthKeySync Logo

AuthKeySync

自动从远程 URL 同步 SSH 公钥到您的服务器

CI Status Go Report Card Release Version License

📖 完整文档

问题

跨多台服务器管理 SSH 访问非常痛苦:

  • 团队成员加入或离开时,你需要在每台服务器上更新 authorized_keys
  • 开发人员轮换 SSH 密钥,而现在你有 20 台服务器需要更新
  • 你正在使用基础设施即代码,但 SSH 密钥管理仍是手动的
  • 自制 bash 脚本进行密钥管理往往写得不好、不安全,或者存在细微的 bug,可能导致你无法登录服务器
  • 你想使用 GitHub/GitLab 密钥,但到处复制太繁琐

解决方案

AuthKeySync 是一个轻量级 CLI,它从 URL(GitHub、GitLab、你自己的 API)获取 SSH 公钥并将其同步到你的服务器。它安全、可靠,专为自动化而设计。

root@kitploit:~
# /etc/authkeysync/config.yaml
users:
  - username: "deploy"
    sources:
      - url: "https://github.com/your-username.keys"
      - url: "https://github.com/another-username.keys"

运行 authkeysync(手动或通过 cron),你的 authorized_keys 就会更新。仅此而已。

主要特性

  • 单个二进制文件:无依赖,下载即可运行
  • 默认安全:保留已有的本地密钥,创建备份,使用原子写入
  • 故障安全:如果任何源获取失败,则中止更新以防止锁定
  • 灵活的源:GitHub、GitLab 或任何返回纯文本 SSH 密钥的 URL
  • API 支持:支持 POST 请求和自定义头部,用于需要认证的 API
  • IaC 就绪:无状态、幂等,完美适用于 Ansible/Terraform/cloud-init
  • 跨平台:支持 Linux 和 macOS(AMD64 和 ARM64)

快速开始

1. 下载

从 releases 页面 获取最新的二进制文件:

root@kitploit:~
# Linux AMD64
curl -Lo authkeysync https://github.com/eduardolat/authkeysync/releases/latest/download/authkeysync-linux-amd64
chmod +x authkeysync
sudo mv authkeysync /usr/local/bin/

2. 配置

在 /etc/authkeysync/config.yaml 创建配置文件:

root@kitploit:~
policy:
  backup_enabled: true # 修改前创建备份(默认:true)
  backup_retention_count: 10 # 保留的备份文件数量(默认:10)
  preserve_local_keys: true # 保留不在远程源中的密钥(默认:true)

users:
  - username: "root"
    sources:
      - url: "https://github.com/your-username.keys"

3. 运行

root@kitploit:~
# 先用 dry-run 测试
sudo authkeysync --dry-run

# 应用更改
sudo authkeysync

4. 自动化

设置 cron 任务或 systemd 定时器定期运行:

root@kitploit:~
# 每5分钟(使用 --quiet 减少 cron 中的日志输出)
echo "*/5 * * * * root /usr/local/bin/authkeysync --quiet" | sudo tee /etc/cron.d/authkeysync

配置选项

Policy(全部可选)

Users(必需)

选项类型必需描述

Sources

包含所有选项的示例

root@kitploit:~
policy:
  backup_enabled: true
  backup_retention_count: 10
  preserve_local_keys: true

users:
  - username: "deploy"
    sources:
      # 简单的 GitHub 密钥
      - url: "https://github.com/your-username.keys"

      # 带认证的私有 API
      - url: "https://keys.yourcompany.com/api/keys"
        method: "POST"
        headers:
          Authorization: "Bearer your-secret-token"
          Content-Type: "application/json"
        body: '{"environment": "production"}'
        timeout_seconds: 5

CLI 选项

退出码

代码含义
0成功:所有用户已处理或跳过
1失败:至少有一个用户同步失败

工作原理

  1. 获取:从配置的 URL 下载 SSH 密钥
  2. 解析:验证并去重所有源中的密钥
  3. 合并:可选地保留仅在本地存在的密钥
  4. 写入:原子地更新 authorized_keys,并设置正确的权限
  5. 备份:在进行任何更改前创建带时间戳的备份

如果任何源获取失败,AuthKeySync 会中止该用户的更新以防止锁定。你现有的访问权限保持不变。

支持项目

如果你觉得 AuthKeySync 有用,请考虑在 GitHub 上给它加星,并在 X(Twitter)上关注我以获取更新:

  • 在 GitHub 上加星
  • 在 X 上关注 @eduardoolat

许可证

MIT 许可证。详见 LICENSE。

下载工具
选项类型默认值描述
backup_enabledbooltrue修改 authorized_keys 前创建备份
backup_retention_countint10每个用户保留的备份文件数量
preserve_local_keysbooltrue保留未在远程源中的现有密钥
usernamestring是系统用户名(例如 root、deploy)
sourceslist是密钥源列表
选项类型默认值描述
urlstring(必需)返回纯文本 SSH 密钥的 URL
methodstringGETHTTP 方法:GET 或 POST
headersmap{}自定义 HTTP 头部(例如用于认证)
bodystring""POST 请求的请求体
timeout_secondsint10请求超时时间(秒)
选项描述
--config <path>配置文件路径(默认:/etc/authkeysync/config.yaml)
--dry-run模拟同步,不修改任何文件
--debug启用调试日志(最详细)
--quiet仅显示警告和错误(推荐用于 cron)
--silent仅显示错误(最安静)
--version显示版本信息并退出
--help显示帮助信息