Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
authkeysync — 🔐 リモートURLからSSH公開鍵を取得し、ローカルのauthorized_keysファイルに同期するために設計された軽量CLIユーティリティ | Kitploit
ツール/GitHubGitHub/eduardolat/authkeysync
認証と認可クラウドインフラストラクチャセキュリティスクリプトと自動化構成監査DevSecOps認証
GitHubeduardolat/authkeysync

authkeysync

🔐 リモートURLからSSH公開鍵を取得し、ローカルのauthorized_keysファイルに同期するために設計された軽量CLIユーティリティ

リポジトリを見る
288ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

AuthKeySync ロゴ

AuthKeySync

リモートURLからSSH公開鍵を自動的にサーバーへ同期します

CI Status Go Report Card Release Version License

📖 完全なドキュメント

問題

複数のサーバーにまたがるSSHアクセスの管理は大変です:

  • チームメンバーの加入や離脱があるたびに、すべてのサーバーのauthorized_keysを更新する必要がある
  • 開発者がSSHキーを交換すると、今度は20台のサーバーを更新しなければならない
  • Infrastructure as Codeを利用していても、SSHキー管理は依然として手動のまま
  • 鍵管理用の自作bashスクリプトは、しばしば品質が低く、安全性に欠け、サーバーからロックアウトされるような微妙なバグを含んでいることが多い
  • GitHub/GitLabの鍵を使いたいが、いたるところにコピーするのは面倒だ

解決策

AuthKeySyncは、URL(GitHub、GitLab、独自API)からSSH公開鍵を取得し、サーバーに同期する軽量CLIです。安全で信頼性が高く、自動化を前提に設計されています。

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サポート: 認証付きAPI向けのカスタムヘッダーを使用したPOSTリクエスト
  • IaC対応: ステートレスで冪等。Ansible/Terraform/cloud-initに最適
  • クロスプラットフォーム: LinuxとmacOS(AMD64およびARM64)で動作

クイックスタート

1. ダウンロード

最新のバイナリはリリースページから入手してください:

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 # Create backups before changes (default: true)
  backup_retention_count: 10 # Number of backups to keep (default: 10)
  preserve_local_keys: true # Keep keys not in remote sources (default: true)

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

3. 実行

root@kitploit:~
# Test first with dry-run
sudo authkeysync --dry-run

# Apply changes
sudo authkeysync

4. 自動化

cronジョブまたはsystemdタイマーを設定して定期的に実行します:

root@kitploit:~
# Every 5 minutes (use --quiet to reduce log noise in cron)
echo "*/5 * * * * root /usr/local/bin/authkeysync --quiet" | sudo tee /etc/cron.d/authkeysync

設定オプション

ポリシー(すべて任意)

ユーザー(必須)

オプション型必須説明

ソース

全オプションを使用した例

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

users:
  - username: "deploy"
    sources:
      # Simple GitHub keys
      - url: "https://github.com/your-username.keys"

      # Private API with authentication
      - 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人のユーザーの同期に失敗した

動作の仕組み

  1. 取得: 設定されたURLからSSH鍵をダウンロードする
  2. 解析: すべてのソースにわたって鍵を検証し、重複を除去する
  3. マージ: ローカルのみに存在する鍵をオプションで保持する
  4. 書き込み: 適切な権限でauthorized_keysをアトミックに更新する
  5. バックアップ: 変更前にタイムスタンプ付きバックアップを作成する

いずれかのソースの取得に失敗した場合、AuthKeySyncはロックアウトを防ぐためにそのユーザーの更新を中止します。既存のアクセスはそのまま維持されます。

プロジェクトを支援する

AuthKeySyncが役立つと思われたら、GitHubでスターを付け、X(Twitter)で更新情報をフォローしていただけると幸いです:

  • GitHubでスターを付ける
  • Xで@eduardoolatをフォロー

ライセンス

MITライセンス。詳細はLICENSEを参照してください。

ツールをダウンロード
オプション型デフォルト説明
backup_enabledbooltrueauthorized_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ヘルプメッセージを表示