Rolinh

Rolinh' release

Ssh: Trucs Et Astuces

Dans une idée de partage, j’ai aujourd’hui écrit un simple post à propos d’astuces ssh que j’ai glanées ça et là et qui facilitent la vie en espérant que, dans le cas où vous ne les connaissiez pas, elles puissent vous aider aussi.

En effet, j’ai remarqué que, bien souvent, les gens ne vont pas creuser les manpages en profondeur et utilisent ssh d’une manière que j’ai envie de qualifier de “basique”.

Si vous avez un tant soit peu prêté attention à la configuration de votre sshd, vous avez sans doute changé le port par défaut (22) pour un autre (si ce n’est pas ton cas, honte à toi!). Dès lors, pour vous connecter à votre serveur, vous vous contentez peut-être de ceci:

ssh -p 12345 moi@monserveur

Ou peut-être, vous vous pensez malin et vous avez aliasé cette commande dans votre $SHELLrc. Or, il existe quelque chose de bien plus propre. Il suffit de créer un fichier “config” dans votre $HOME/.ssh et d’y mettre quelque chose de similaire à ceci:

Host monserveur
    Hostname monserveur.org
    Port 12345
    User moi

Maintenant, pour se connecter, cette commande suffit:

ssh monserveur

Évidemment, cela fonctionne également pour la commande scp. Au lieu de:

scp -P 12345 monfichier moi@monserveur:

on peut se contenter de ceci (n’oubliez pas les “:”):

scp monfichier monserveur:

Plutôt pratique non? Et vous me direz peut-être: “comment fait-on si on veut se connecter en tant qu’un autre utilisateur sur le même serveur?” Et bien simplement en ajoutant un autre “Host”:

Host monserveur-autre
    Hostname monserveur.org
    Port 12345
    User autre

Et hop:

ssh monserveur-autre

Bref, si vous avez touché à votre sshd, vous aurez également pris la peine de désactiver le login root et le login par mot de passe pour utiliser un système de paire de clés asymétriques (RSA, DSA ou ECDSA).

Pour peu que vous soyez consciencieux, vous aurez pris la peine de générer une paire de clés avec passphrase. Et là, à chaque tentative de connexion, hop, il faut rentrer la passphrase. Et bien il existe un moyen de rentrer la passphrase une fois et de ne plus s’en occuper ensuite. La plupart des gens utilisent ssh-agent pour gérer les clés. Cela fonctionne très bien mais le problème c’est qu’en ouvrant un nouveau shell, il faudra à nouveau lancer ssh- agent et lui fournir les clés et passphrases… Pas si pratique que cela finalement.

L’autre solution consiste à utiliser keychain. Keychain n’est autre qu’un petit soft qui fait office de frontend à ssh-agent et qui propose de faire tourner ssh-agent par le système au lieu de par login. Ainsi, il suffit de rentrer la passphrase au premier lancement de son shell et ensuite on n’en parle plus.

Pour utiliser keychain, il suffit de l’installer via votre gestionnaire de paquet favoris puis de rajouter une simple ligne dans votre $SHELLrc:

eval `keychain -q --eval --agents ssh id_ecdsa`

De cette manière, la passphrase pour votre clé (dans mon exemple, une ecdsa) vous sera demandée au premier lancement de votre $SHELL mais plus par la suite.

La bonne nouvelle pour les zsh users c’est qu’ils vont pouvoir utiliser la complétion sur des commandes comme celle-ci par exemple:

scp truc monserveur:<TAB>

étant donné qu’il n’y a plus de passphrase à rentrer.