SSHGate est un proxy qui redirige de manière transparente les paquets à travers des tunnels chiffrés SSH, en dissimulant les éléments d’authentification aux utilisateurs.
Reposant entièrement sur le projet OpenSSH, communautaire et non modifié, cet outil propose une CLI d’administration, la gestion d’ACL, gestion de groupe, ainsi que l’enregistrement des sessions utilisateurs, qui peuvent être rejouées ultérieurement à des fins d’analyse.
Un petit mémo des commandes SSHGate
Se connecter:
sshgate-cli -u <login>
1 – Gestion des utilisateurs
Lister tous les utilisateurs:
user list
Ajouter un nouvel utilisateur:
user add <user> mail <email>
Supprimer un utilisateur:
user del <user>
Reconstruire le fichier authorized_keys
user build auth_keys
Afficher de la configuration d’un utilisateur:
user <user> display conf
Définir une variables/valeur dans la configuration de l’utilisateur:
user <user> set conf <variable>
Supprimer une variables/valeur dans la configuration de l’utilisateur:
user <user> del conf <variable>
Lister les machines auquels l’utilisateur a accès:
user <user> list targets
Lister les groupes d’utilisateurs de l’utilisateur:
user <user> list usergroups
Lister les groupes de machines auquel l’utilisateur a accès:
user <user> list targetgroups
Savoir si un utilisateur a accès à une machine:
user <user> has access [<login>@]<target>
Lister tous les accès de l’utilisateur, et comment les accès lui sont accordés:
user <user> access info
Envoyer un mail à l’utilisateur pour l’informer de ses accès:
user <user> access notify
Modifier la clef ssh publique d’un utilisateur:
user <user> edit sshkey
Afficher la clef ssh publique d’un utilisateur:
user <user> display sshkey
Mettre à jour la clef ssh Publique d’un utilisateur dans le fichier authorized_keys:
user <user> update auth_keys
2 – Gestion des groupes d’utilisateurs
Liste de tous les groupes d’utilisateurs:
usergroup list
Créer un groupe d’utilisateurs:
usergroup add <group>
Supprimer un groupe d’utilisateurs:
usergroup del <group>
Liste des utilisateurs d’un groupe:
usergroup <user-group> list users
Liste les groupes machines qui sont accessible par un groupe d’utilisateurs:
usergroup <user-group> list targetgroups
Ajouter un utilisateur dans un groupe:
usergroup <user-group> add user <user>
Supprimer un utilisateur d’un groupe:
usergroup <user-group> del user <user>
Liste les cibles qui sont accessibles par un groupe d’utilisateurs:
usergroup <user-group> list targets
Liste toutes les machines accessibles par un groupe d’utilisateurs:
usergroup <user-group> access info
3 – Gestion des machines
Liste toutes la machines enregistrées dans SSHgate:
target list
Ajoute une machine:
target add [<login>@]<target>
Ajoute une machine derriere un proxy:
target add [<login>@]<target> with proxy [<login>@]<target>
Ajoute une machine en passant par un rebond:
target add [<login>@]<target> via [<login>@]<target>
Supprime une machine:
target del <target>
Liste tous les alias:
target alias list
liste les alias d’une machine:
target <target> list alias
Obtenez le vrai nom d’une machine:
target <target> realname
Ajouter un nom d’alias pour la machine:
target <target> add alias <alias>
Supprime un nom d’alias pour la machine:
target <target> del alias <alias>
Renommer une machine:
target <target> rename <new-name>
Afficher le fichier de configuration de la machine:
target <target> display conf
Définir une variables/valeur dans le fichier de configuration de la machine:
target <target> set conf <variable> <value>
Supprimer une variables/valeur dans le fichier de configuration de la machine:
target <target> del conf <variable>
Liste de tous les utilisateurs ayant accès à la machine , et comment:
target [<login>@]<target> access info
Liste des utilisateurs qui ont accès à la machine:
target [<login>@]<target> access list users
Permet à l’utilisateur d’accéder à la machine:
target [<login>@]<target> access add user <user>
Supprime à l’utilisateur l’accès à la machine:
target [<login>@]<target> access del user <user>
Liste tous les groupes qui ont accès à la machine:
target [<login>@]<target> access list usergroups
Permet au groupe d’utilisateur d’accéder à la machine:
target [<login>@]<target> access add usergroup <group>
Supprime au groupe d’utilisateur l’accès à la machine:
target [<login>@]<target> access del usergroup <group>
4 – Gestion des clef SSH
Edite le fichier de configuration SSH d’une machine ou d’un login:
target <target> ssh edit config
Afficher le fichier de configuration de SSH d’une machine:
target <target> ssh display config
Affiche entièrement le fichier de configuration SSH d’un login sur une machine:
target [<login>@]<target> ssh display full config
Mise à jour du fichier « known_hosts » pour toutes les machines:
target ssh update known_hosts
Test pour se connecter sur une machine:
target <target> ssh test
Test pour se connecter à toutes les machines:
target <target> ssh test all
Liste tous les logins SSH valident sur une machine:
target <target> ssh list logins
Ajoute un login SSH sur une machine:
target <target> ssh add login <login>
Enleve un login SSH sur une machine:
target <target> ssh del login <login>
Affiche la clef publique de la machine:
target <target> ssh display key
Edite la clef privée de la machine:
target <target> ssh edit key
Tente d’installer la clef publique sur une machine:
target <target> ssh install key
Installe toute les clef SSH publique sur la cible:
target <target> ssh install all key
Mets une clef SSH par défaut pour une machine:
target <target> ssh use default key
5 – Gestion des groupe de machines
Liste de tous les groupes de machines:
targetgroup list
Création d’un groupe de machines:
targetgroup add <target-group>
Suppression d’un groupe de machines:
targetgroup del <target-group>
Liste les utilisateurs qui ont accès au groupe de machines:
targetgroup <target-group> list targets
Ajoute une machine dans un groupe de machine:
targetgroup <target-group> add target [<login>@]<target>
Supprime une machine d’un groupe de machines:
targetgroup <target-group> del target [<login>@]<target>
Liste les utilisateurs ayant accès au groupe de machines:
targetgroup <target-group> access list users
Donne à l’utilisateur l’accès à toutes les machines du groupe de machines:
targetgroup <target-group> access add user <user>
Révoquer l’accès des utilisateurs à cibler l’hôte du groupe de machines:
targetgroup <target-group> access del user <user>
Liste les machines du groupe de machines accessible par le groupe d’utilisateur:
targetgroup <target-group> access list usergroups
Donne au groupe d’utilisateurs l’accès au groupe de machines:
targetgroup <target-group> access add usergroup <user-group>
Enlève au groupe d’utilisateurs l’accès au groupe de machines:
targetgroup <target-group> access del usergroup <user-group>
6 – Gestion des sessions
Liste les sessions en cours:
session list current
Liste les dernières sessions connectées:
session list last
Liste les sessions en cours sur une machine:
session target <target> list
Liste les sessions en cours d’un utilisateur:
session user <user> list
Tue une session SSHGate:
session kill <pid>
Debug de SSHgate (équivalent « set -x » en bash):
debug
Plus d’information ici.