SSH Key Manager — create, organize, and grant access. No dependencies.
sshk manages your SSH keys in a clean, predictable structure. One key per purpose, one command per action. Zero dependencies — pure Bash + OpenSSH.
curl -fsSL https://raw.githubusercontent.com/Sofian-bll/sshk/main/install.sh | bashOr manually:
mkdir -p ~/.local/bin
curl -fsSL https://raw.githubusercontent.com/Sofian-bll/sshk/main/sshk -o ~/.local/bin/sshk
chmod +x ~/.local/bin/sshk$ sshk
🔑 sshk — Gestionnaire de clés SSH
Usage : sshk <commande> [options]
Identités (sortant)
──────────────────────────────────────────────────
create Assistant interactif de création
list Lister tout (identités + accès)
list --keys Seulement mes identités
list --auth Seulement les accès entrants
show <nom> Détails d'une identité
copy <nom> Copier la clé publique
delete <nom> Supprimer une identité
Accès (entrant)
──────────────────────────────────────────────────
grant <nom> Autoriser une machine distante
revoke <nom> Révoquer l'accès
$ sshk list
🔑 Clés SSH
NOM TYPE EMPREINTE CRÉÉ
──────────────────────────────────────────────────
github ed25519 SHA256:nsUE... 03/03
vela ed25519 SHA256:s7N3... 01/06
void ed25519 SHA256:gszk... 01/06
$ sshk show vela
🔑 vela
──────────────────────────────────────────────────
Type : ed25519
Empreinte : SHA256:s7N3Um...
Comment : sofian@vela
Créée le : 2026-06-01
Chemin : ~/.ssh/keys/vela/id_ed25519
Config : ~/.ssh/config.d/20-vela.conf
HostName : 100.77.184.28
──────────────────────────────────────────────────
ssh : ssh vela
copier : sshk copy vela
$ sshk grant void
ℹ Copie de la clé publique vers void (100.115.31.73)...
✅ Accès accordé → macbook autorisé sur void.
✅ Prêt. Testez avec ssh void.
~/.ssh/
├── keys/ # Your identities (who you are)
│ ├── github/
│ │ └── id_ed25519
│ ├── vela/
│ │ └── id_ed25519
│ └── void/
│ └── id_ed25519
├── config.d/ # Outgoing connections (ssh <name>)
│ ├── 20-github.conf
│ ├── 20-vela.conf
│ └── 30-void.conf
└── authorized_keys.d/ # Incoming accesses (who can connect)
├── macbook
└── vela
On each server, enable authorized_keys.d/ once:
mkdir -p ~/.ssh/authorized_keys.d
chmod 700 ~/.ssh/authorized_keys.d
echo 'AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys.d/*' | sudo tee -a /etc/ssh/sshd_config
sudo systemctl restart sshdMIT