https://github.com/gabocapo/gdkg
Go Deploy Key Gen - Secure deploy key generator built with Go
https://github.com/gabocapo/gdkg
cli deploy-keys github go
Last synced: 11 months ago
JSON representation
Go Deploy Key Gen - Secure deploy key generator built with Go
- Host: GitHub
- URL: https://github.com/gabocapo/gdkg
- Owner: GaboCapo
- Created: 2025-07-26T23:33:14.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-07-27T07:00:18.000Z (11 months ago)
- Last Synced: 2025-07-27T09:04:40.184Z (11 months ago)
- Topics: cli, deploy-keys, github, go
- Language: Go
- Homepage:
- Size: 9.77 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

# 🔐 gdkg - Go Deploy Key Generator
`gdkg` is a lightweight Go CLI tool for securely generating, managing, and revoking **SSH Deploy Keys** for GitHub repositories.
It automates deploy key workflows and ensures a clean, secure setup.
---
## ✨ Features
- ✅ Generate SSH deploy keys with a single command
- 🔁 Cleanly revoke deploy keys (including SSH config cleanup)
- 🔒 Uses modern `ed25519` keys
- 🧰 CLI mode and interactive TUI
- 📦 Small, portable binary with no dependencies
- ⚙️ Compatible with CI/CD pipelines and personal projects
---
## 📦 Installation / Run
### From source (if you want to develop or test it)
> Requires Go 1.20
```
git clone https://github.com/GaboCapo/gdkg.git
```
```
cd gdkg
```
```
./build.sh
```
Binary will be available as `./gdkg`.
### Run from Releases (if you want to use it right away without development)
Download the appropriate binary for your platform from the [Releases](https://github.com/GaboCapo/gdkg/releases) section and place it in a directory of your choice.
> **Note:** This is a console-based CLI tool and must be executed from a terminal or command prompt. Double-clicking will not work.
#### Example (Linux):
1. **Make the binary executable:**
```bash
chmod +x gdkg-v1.0.0-linux-amd64
```
2. **Run the application via terminal:**
```bash
./gdkg-v1.0.0-linux-amd64
```
3. **Console output will look like this:**
```text
=== GitHub Deploy Key Generator ===
1: Generate deploy key
2: Remove deploy key
3: Quit
Please select an option:
```
---
## 🚀 Usage
### Interactive mode
```
./gdkg
```
Menu guides you through:
- [1] Generate new deploy key
- [2] Revoke existing key
- [3] Exit
## 📁 File structure
Default storage: `~/.ssh/gdkg`
```
~/.ssh/gdkg/
├── config # SSH config file with host entries
├── my-repo_deploy-key # Private key
└── my-repo_deploy-key.pub # Public key (for GitHub)
```
`config` updates automatically on key creation.
---
## 🔐 Security
- Ed25519 keys
- Deploy keys separated from main SSH folder
- SSH config only updated with necessary entries
- No data sent externally
---
## 📜 License
MIT License © [GaboCapo](https://github.com/GaboCapo)
---
## 🧠 Credits
Built to automate GitOps workflows no manual copy-paste needed.
🔐 This repo is pushed with a deploy key generated by this tool
Made with ❤️ in Go.