{"id":15485691,"url":"https://github.com/dhsathiya/action-ssh-keys","last_synced_at":"2026-05-17T03:36:46.956Z","repository":{"id":171650246,"uuid":"259671020","full_name":"dhsathiya/action-ssh-keys","owner":"dhsathiya","description":"Manage SSH authorized keys from GitHub with GitHub Actions","archived":false,"fork":false,"pushed_at":"2020-06-30T14:42:45.000Z","size":18,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-02T15:48:43.456Z","etag":null,"topics":["automation","devops","github-actions","ssh-keys"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/dhsathiya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-28T15:06:49.000Z","updated_at":"2020-06-30T14:40:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"f6acfe74-c80c-46d6-b648-1c68d8a1f9f7","html_url":"https://github.com/dhsathiya/action-ssh-keys","commit_stats":{"total_commits":13,"total_committers":1,"mean_commits":13.0,"dds":0.0,"last_synced_commit":"b7dae4f1ce9684e5650b485a69403ffb45661e76"},"previous_names":["dhsathiya/action-ssh-keys"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhsathiya%2Faction-ssh-keys","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhsathiya%2Faction-ssh-keys/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhsathiya%2Faction-ssh-keys/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhsathiya%2Faction-ssh-keys/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dhsathiya","download_url":"https://codeload.github.com/dhsathiya/action-ssh-keys/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246056586,"owners_count":20716768,"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","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":["automation","devops","github-actions","ssh-keys"],"created_at":"2024-10-02T06:02:34.259Z","updated_at":"2025-10-11T06:07:29.783Z","avatar_url":"https://github.com/dhsathiya.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Manage SSH Keys - GitHub Action\nManage SSH authorized keys from GitHub with GitHub Actions.\n\nThis action will\n1. Fetch public key from GitHub username e.g. https://github.com/dhsathiya.keys\n2. Add provided users in keys.csv to the respective remote machines.\n\n_Note: This action is still under development, but works. Check TODO for more details_\n\n## Why?\nI get bore when I have to add a user or check the SSH access for someone.\n\nWith this action I can centrally monitor who can access what!\n\n## Configuration\n1. create workflow directory and add yml file. `.github/workflows/ssh_key.yml`\n    ```yml\n    on:\n      push:\n        branches:\n          - master\n    \n    name: Update SSH Keys\n    jobs:\n      Update-SSH-key:\n        name: Update and sync files\n        runs-on: ubuntu-latest\n        steps:\n        - uses: actions/checkout@v2\n          with:\n            fetch-depth: 2\n        - name: Update and sync files\n          uses: dhsathiya/action-ssh-keys@master\n          env:\n            DEPLOY_KEY: ${{secrets.DEPLOY_KEY}}\n    ```\n2. Create a GitHub secret named `DEPLOY_KEY` and add private key which will be used for `rsync`.\n    - Create SSH keys https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent\n\n3. Add the respective public key to the `DEPLOY_KEY` on all the machines on which you want to use this action.\n4. Create file `default.key` in the GitHub repository root and add the public key in it.\n    - This step is necessary, so that the SSH key used by action gets whitelisted on every run.\n    - Other reason is, you are using this action because you don't like manual stuff and you also won't like to add the `step 3` key after every run. :wink:\n\n5. Create `keys.csv` file.\n    - Simple csv file, field separated with `,`\n\n### `keys.csv` file format\n|user@hostname             |/path/to/authorized_keys     |      |      |      |      |\n|--------------------------|-----------------------------|------|------|------|------|\n|root@dev.sitename.tld     |/root/.ssh/authorized_keys   |user1 |user2 |      |      |\n|www-data@prod.sitename.tld|/var/www/.ssh/authorized_keys|user1 |user2 |user3 |user4 |\n\nThe action will by default ignore first line.\n\n[Example CSV File](./keys.csv)\n\n## TODO\n- [ ] Checks and filters for CSV file fields\n- [ ] Only run on diff\n- [ ] Fail checks\n- [ ] Feature: Direct SSH key support\n- [ ] Make action code as per best practices\n- [ ] Lighter Docker image\n- [ ] [HashiCorp Vault](https://www.vaultproject.io/) Support\n- [ ] Publish Action\n- [ ] Slack Notification\n\n## License\n[MIT](LICENSE) © 2020 Devarshi Sathiya\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhsathiya%2Faction-ssh-keys","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhsathiya%2Faction-ssh-keys","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhsathiya%2Faction-ssh-keys/lists"}