{"id":15404557,"url":"https://github.com/k1low/keyp","last_synced_at":"2025-07-27T14:07:56.062Z","repository":{"id":44169514,"uuid":"311307750","full_name":"k1LoW/keyp","owner":"k1LoW","description":"keyp is a tool to keep public keys up to date.","archived":false,"fork":false,"pushed_at":"2022-02-11T09:13:59.000Z","size":105,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-17T07:14:49.266Z","etag":null,"topics":["github","public-keys","stns"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/k1LoW.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-11-09T10:50:25.000Z","updated_at":"2023-05-12T07:07:03.000Z","dependencies_parsed_at":"2022-08-28T01:20:22.479Z","dependency_job_id":null,"html_url":"https://github.com/k1LoW/keyp","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/k1LoW/keyp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k1LoW%2Fkeyp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k1LoW%2Fkeyp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k1LoW%2Fkeyp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k1LoW%2Fkeyp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/k1LoW","download_url":"https://codeload.github.com/k1LoW/keyp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k1LoW%2Fkeyp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267368932,"owners_count":24076093,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github","public-keys","stns"],"created_at":"2024-10-01T16:13:41.100Z","updated_at":"2025-07-27T14:07:56.046Z","avatar_url":"https://github.com/k1LoW.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# keyp\n\nkeyp is a tool to keep public keys up to date.\n\n## Usage\n\n### Collect public keys\n\nExample: Collect public keys from [GitHub](https://github.com/) ( user: `alice`, user: `bob` and team: `myorg/administrators` ).\n\n``` console\n$ export GITHUB_TOKEN=xxXXXXxxxxXXXXXXxxxXXX\n$ keyp collect -b github -u alice -u bob -t my-org/developers\nssh-rsa C1yc2EAAAADAQABAAACAQCmnCCt6PyH9jLZbPkMijSJYIu14nhxyFVw9M9eAkgcMQ3EsKf86GWlGPDfZcqcDqI+LP7LKQk4kAlmLOQQMavthrhGEURxxdX0Yk2A6pHjG3zrcW7X30ZBMwOzX/a6EWkPXPwPH6LcP3rM9yEIg95f2JntxO3z7l/8QjzJCoPIlqyoX4I7bxHus/rZVnRNh9C0PbUejbg/iWaTTxkNglSeEYpW+ID2k/4Absisa5XyY2zEOMw+6OyfRL9AlfGYv545J0g90qWS11iRSFnMR7A6FNUea/pVESIMmmBI56Ne+S8NmwR724u3d5kNJxuAKpmtThNPdxW/vmtuc5XBZgtPX/rzdAW0TQZvpVoLnoKaqYgfIpcrrkSAoPlcVxfq/NrpVlbIi6c9rZRZR4dcqmAK2eBGuDQZBiYJSESuPbE6i08GGnM8OblD8pshVeGMStztR+NuXywIXbRpyqNF2VNjil8r4qGNW9AB8ZVUB/1s6U8oxvtlbABoxXLrdNlKj3rl2YoPIZyCLAp9QDch8P1SnmQTEZK67YY5KNQrJZ2ql7pblo84JqsRbwuOrexTz6xrbBWFZMHWorFqF8ryX0LOw9TIaHbYqleynhqJ0a8VJHZMmwndYKjw3brtJ3SfCpXU0826LOExWXcjfBqHK65gM+MQ==\nssh-rsa AAADAQABAAACAQC8IEt4MqBed/yXQyjUTCZRdZoCUNhm0bEkOV8Ef5TduQvMIPDpBYyYIvFz7jxJyShPoiTMtIUnkkA2aDF0jhujFzqKmYm9H2tS7Tpf5iNwRJgJJJWv674tGUcu+6+ZadmDBQ//dwo8XWTHxmkWfgaybxs8/o0AlwZQ4pYFcky0q+/qP4cwPAmRW0rGCo0E5BhS/5eGssoLBXu4/Hcaz/93H8AtAe1UQrlCKma0rj0HIA9A9Q9EQtunw/zJTBtTyzE/TvxKcSMNulgdVmFSRmU6l84Ftc6tZPoiaCnxcvQUyjCEeQfy4DbtCWe1tEubyKeBLBTXTnpqWA3Gs9GryQA/bR7Ivan/03FshLFeVVnbvvO11sKNvkAJ8u417Q2/G9bcB1H30Xa9PSRE+2CbQ2maafhPVL17TJVBvkDCM5trmwxfM2tdlKA7R+mTj9nIrSLN4BYrge8IZ1fesC/sKMlMwhNEOrQYQQIZMIx8hfLAS37D8wbUPRodQFJsolrK6cHlNICR/TLcijNhCeHJkD8448EuJn1BCbYKglG7eUYKLbMXcVJAoTPlFTHPU80oaHJhmpLe0vFSxrhWVf/ha81zRefXOiye7Pbn/h+sa2qsKTnAMShpS1m+RP7QmHNmFAbHlPeTlnd0oJI/bt5Mysn5HHjX4vAJdQ==\n[...]\n```\n\n### Update authorized_keys\n\nExample: Update `~/.ssh/authorized_keys` of `ubuntu` user using public keys managed by [STNS](https://stns.jp/).\n\n``` console\n$ keyp update-authorized-keys ubuntu -b stns -u k1low -g developers\n```\n\n## Support Backend\n\n### [GitHub](https://github.com/)\n\n``` console\n$ keyp collect -b github -u alice -u bob -t myorg/administrators\n```\n\n#### Environment\n\n| key | description |\n| --- | --- |\n| `GITHUB_TOKEN` | GitHub Personal Access Token (required) |\n| `GITHUB_ENDPOINT` | ( GitHub Enterprise ) GraphQL API Endpoint. ex `https://git.mycompany.com/api/graphql` |\n\n### [STNS](https://stns.jp/)\n\n``` console\n$ keyp update-authorized-keys ubuntu -b stns -u k1low -g developers\n```\n\n`stns` backend load `/etc/stns/client/stns.conf` first.\n\n#### Environment\n\n| key | description |\n| --- | --- |\n| `STNS_API_ENDPOINT` | STNS API endpoint. ex `https://stns.lolipop.io/v1` |\n| `STNS_AUTH_TOKEN` | Token authentication token |\n| `STNS_USER` | Basic authentication user |\n| `STNS_PASSWORD` | Basic authentication password |\n| `STNS_SKIP_VERIFY` | Skip verify certs |\n| `STNS_REQUEST_TIMEOUT` | HTTP request timeout |\n| `STNS_REQUEST_RETRY` | HTTP request of retries |\n\n## Install\n\n**deb:**\n\nUse [dpkg-i-from-url](https://github.com/k1LoW/dpkg-i-from-url)\n\n``` console\n$ export KEYP_VERSION=X.X.X\n$ curl -L https://git.io/dpkg-i-from-url | bash -s -- https://github.com/k1LoW/keyp/releases/download/v$KEYP_VERSION/keyp_$KEYP_VERSION-1_amd64.deb\n```\n\n**RPM:**\n\n``` console\n$ export KEYP_VERSION=X.X.X\n$ yum install https://github.com/k1LoW/keyp/releases/download/v$KEYP_VERSION/keyp_$KEYP_VERSION-1_amd64.rpm\n```\n\n**homebrew tap:**\n\n```console\n$ brew install k1LoW/tap/keyp\n```\n\n**manually:**\n\nDownload binary from [releases page](https://github.com/k1LoW/keyp/releases)\n\n**go get:**\n\n```console\n$ go get github.com/k1LoW/keyp\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk1low%2Fkeyp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fk1low%2Fkeyp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk1low%2Fkeyp/lists"}