SSHC : gestionnaire de profils SSH en ligne de commande

I. Présentation de SSHC

SSHC (pour "SSH Console") est un gestionnaire de profils SSH en ligne de commande, ultra pratique pour les Linuxiens qui souhaitent une gestion des profils "à la Putty". L'intérêt est bien entendu de pouvoir :

  • Centraliser des profils de connexion SSH
  • Se connecter rapidement (via un sélection menu)

Le tout en ayant en plus un stockage des mots de passe ! Je trouve personnellement l'outil très utile et facile à utiliser. Voyons cela ! 🙂

II. Installation de SSHC

SSHC est un outil simple d'installation, la plupart des dépendances dont il a besoin sont présentes nativement sur les distributions Linux classiques. Nous aurons cependant besoin d'installer :

  • openssl : Ce paquet permet bien entendu de gérer la partie chiffrement, il notamment utilisé pour chiffrer les profils et les mots de passe dans notre cas;
  • sshpass : Permet de gérer le passage du mot de passe lors de l'utilisation des profils de connexion SSH;
  • wget : Composant qui sera utilisé pour récupérer des informations depuis l'extérieur, pour l'installation et les mises à jours depuis le Github du projet par exemple;
  • ssh : Sans lequel rien de tout ça n'est possible, SSH (client et serveur) est généralement présent par défaut sur les distributions Linux;
  • joe : il s'agit d'un éditeur de texte, utilisé par SSHC, notamment pour créer nos connexions.

Sous Debian, voici comment installer ces paquets :

apt-get install openssl sshpass wget ssh joe

Sous CentOS :

yum install openssl sshpass wget ssh joe

Bien, maintenant que nos dépendances sont installées, nous allons pouvoir installer notre outil "SSHC", on le télécharge :

wget https://github.com/e2ma3n/sshc/archive/master.zip

On décompresse l'archive récupérée :

unzip master.zip

On se retrouve avec un répertoire "sshc-master" dans lequel on se rend pour exécuter l'installeur :

cd sshc-master
./install.sh -i

Voici l'affichage attendu :

sshc-installation
Installation de SSHC

Il ne nous reste plus qu'à créer nos profils de connexion ! 🙂

III. Enregistrement de nos profils et utilisation

Pour utiliser SSHC, rien de plus simple :

sshc

L'outil va alors nous demander notre mot de passe de base de données. Cette base de données est chiffrée et permet de stocker nos profils de connexion et surtout nos mots de passe ! Par défaut, le mot de passe de la base de données est "sshc", pas d'inquiétude, nous allons changer cela, voici le premier affichage attendu :

sshc-utilisation-01
SSHC : premier lancement

Ici, nous allons saisir "0" pour éditer notre base de données, nous allons donc ensuite avoir un fichier à modifier et dans lequel saisir nos profils de connexion. Un exemple est fournis et les nouvelles entrées sont à saisir tout en bas du fichier (après la deuxième ligne de tiret), voici quelques exemples d'entrées :

root 0 monserveur.fr 0 22 monPassword
root 1594 10.1.2.5 0 5222 monPassword

La trame a suivre est la suivante :

utilisateur port_proxy_local IP/dns_serveur port_proxy_distant port_ssh mot_de_passe

Les paramètres "port_proxy_local" et "port_proxy_distant"  peuvent être positionnés à "0" si non utilisés, ce qui sera le cas la plupart du temps, dans tous les cas il faut mettre une valeur (aléatoire si vous le souhaitez) mais pas un vide ou un espace ! Sachez néanmoins que ceux-ci permettent l'établissement d'un tunnel SSH.

sshc-utilisation-04
Ajout ou modification d'un profil de connexion

Une fois le fichier rempli, on effectue la combinaison de touche Ctrl+X puis "0" et "ENTREE" pour valider nos changements. Un mot de passe nous sera alors demandé pour verrouiller et chiffrer notre base de données, l'occasion de changer le "sshc" par défaut :

sshc-utilisation-02
SSHC : Saisie du mot de passe de base de données

Note : L'algorithme de chiffrement utilisé et la méthode de chiffrement sont consultables dans le code source du projet (vive l'open-source ! 🙂 ) il s'agit de l'aes-256-cbc

Une fois le mot de passe saisi, une nouvelle base de données sera créée et chiffrée avec votre mot de passe principal. Lorsque l'on exécutera à nouveau la commande "sshc", c'est ce mot de passe qu'il faudra saisir pour accéder à vos profils (autrement le message "Database can not decrypted" s'affichera). Voici la vue que l'on aura alors :

sshc-utilisation-05
SSHC : Sélection du profil de connexion à utiliser

Il ne nous reste donc plus qu'à sélectionner le profil de connexion que nous souhaitons utiliser, on se retrouve alors avec plusieurs choix de connexion  :

sshc-utilisation-06
SSHC : Sélectionne du mode de connexion (le mode "1" étant le plus courant)

Le choix n°0 permet l'utilisation des paramètres "local_proxy_port" et "remote_proxy_port" pour établir un tunnel, si c'est le mode n°1 qui est sélectionné, ces paramètres seront ignorés est une connexion normale se lancera avec les paramètres saisis (utilisateur, serveur, port et mot de passe).

Pour les curieux, voici le Github du projet : https://github.com/e2ma3n/sshc

C'est un outil que je trouve intéressant car il propose une utilisation similaire à Putty et sa gestion des profils. Il aurait néanmoins été appréciable d'avoir la possibilité de ne pas mettre de mot de passe dans la base de données, ce qui n'est pas possible aujourd'hui car cela provoque une erreur d'utilisation de la commande de connexion, un peu dommage. !

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Mickael Dorigny

Fondateur d'IT-Connect.fr et d'Information-security.fr. Auditeur sécurité chez Amossys.

    mickael a publié 475 articles sur IT-Connect.See all posts by mickael

    Une réaction sur “SSHC : gestionnaire de profils SSH en ligne de commande

    • 14/06/2016 à 08:57
      Permalink

      Intéressant, je préfère néanmoins le fichier config du client ssh de base. Pour la gestion des mots de passe, soit je copie ma clef publique sur le distant, soit je confie le travail à un gestionnaire de mots de passe en configurant une touche d’action rapide.

      Répondre

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *