Faciliter la connexion SSH au VPS

Mettre un mot de passe fort pour les utilisateurs qui se connectent en SSH à un VPS est une nécessité pour ne pas qu’une attaque par force brute ne trouve le mot de passe rapidement et nous laisse le temps d’y réagir. Cependant, plus le mot de passe est complexe, est plus il est difficile à retenir et à taper. Rappelons que les mots de passes ne sont pas affichés lorsque nous les rentrons sur Debian.

C’est pourquoi j’ai réalisé une recherche d’informations visant à simplifier la connexion au VPS, en renseignant automatiquement le mot de passe à la demande de connexion.

Pour le moment, une seule méthode est décrite dans cet article, car elle répond au mieux aux besoins, mais si lors de mes veilles je trouve des solutions alternatives plus ou moins avantageuses, je les détaillerais dans cet article.

J’utilise l’utilitaire Putty pour me connecter en SSH aux différents périphériques. Je vous le recommande. Il est simple d’utilisation, complet et léger.

Page principale de Putty

Putty peut également être lancé par ligne de commande, permettant de ce fait des arguments tels que type de connexion, adresse de connexion, utilisateur et … mot de passe !
Il me suffit donc de réaliser un simple script batch qui lance Putty avec les arguments de connexion.

Commençons par créer un fichier que l’on nommera, par exemple, vps_ssh.txt

Renseigner maintenant cette ligne dans le fichier précédemment créé:

start putty.exe -ssh [email protected] -pw monMotDePasseQueJaimeEtQueJaD0r

Explication de la commande:
start putty.exe : commande Windows qui lance le fichier fourni, ici Putty
-ssh : paramètre de Putty qui définit le type de connexion comme ssh
[email protected] : sous la forme utilisateur@serveur, argument de -ssh qui fourni le nom d’utilisateur et le serveur où se connecter en SSH
– -pw : paramètre qui définit le mot de passe à renseigner à la connexion

Pour exécuter le fichier, il faut changer son extension en .bat, plusieurs méthodes existent, personnellement j’ai affiché les extensions de fichiers sur Windows puis je modifie les extensions à la main. Soit:

Un avertissement nous demande confirmation pour modifier l’extension.

Une fois le fichier prêt, il ne nous reste plus qu’à le lancer pour vérifier son bon fonctionnement…

Le script fonctionne sur tous les supports Windows tant que Putty est installé sur ceux-ci. Il est possible d’améliorer le script en vérifiant l’installation ou non du logiciel et de l’installer via le script si nécessaire.
Je m’y pencherais à l’avenir, mais l’entièreté de mes postes ayant déjà Putty, et n’utilisant jamais ce script sur d’autres postes, l’investissement serait une perte de temps.

Le script peut être utilisé pour n’importe quel matériel accessible en SSH (Switch, VPS, serveur local…).

Cette solution répond aux besoins mais apporte néanmoins une certaine contrainte.
Pouvoir modifier aisément le mot de passe d’une simple modification de texte dans le fichier est très appréciable mais cela présente un défaut de sécurité non négligeable.
Le mot de passe étant écrit en clair dans le script, n’importe qui ayant accès à ce document peut donc récupérer mon mot de passe.

S’il est possible de chiffrer le mot de passe en amont, puis de le déchiffrer lors de l’exécution du code, nous gagnerons un peu en sécurité, excluant les scripts kiddies (débutant) des risques d’attaques.
Une autre solution serait de convertir le script en .exe, mais cela signifierait devoir recompiler le script à chaque modification de mot de passe et c’est une solution faillible (reverse engineering).

Il est également possible de se connecter via ce que l’on appelle des « clés ssh ». On peut exporter une paire de clés dans un fichier. Ce fichier est à renseigner dans les paramètres du logiciel que l’on utilise pour le SSH.

Le fonctionnement sera similaire. L’inconvénient de cette méthode est que le fichier doit être obligatoirement utilisé, si on le perd on doit générer de nouvelles clés SSH. Comme la solution choisie précédemment, quelqu’un qui volerait ce fichier pourrait se connecter au VPS, cependant s’il n’a pas d’informations comme l’IP du serveur, son port etc, il aura du mal à s’y connecter !

Laisser un commentaire