SSHRC - L'outil malin pour retrouver vos dotfiles en SSH
Si vous êtes du genre à passer votre vie en SSH sur des serveurs distants comme moi, alors voici un petit outil bien sympa qui va peut-être changer votre façon de bosser. Cela s’appelle sshrc et au début, j’ai cru à une énième tentative de réinventer la roue, mais en fait non. Ce truc est vraiment cool car quand vous vous connectez en SSH, il copie automatiquement votre configuration locale dans un dossier temporaire sur le serveur distant. Comme ça, vous retrouvez instantanément vos alias bash, vos raccourcis vim, votre prompt avec ses jolies couleurs…etc. Tout ce qui fait que vous vous sentez chez vous… mais sur votre serveur.
Le truc vraiment cool, c’est que ça ne pollue pas le serveur car tout est stocké dans /tmp dans un dossier propre à votre session. Si d’autres utilisateurs se connectent (même avec sshrc), ils auront leurs propres configs et pas les vôtres.
Pour l’installer, rien de plus simple. Sous macOS avec Homebrew :
brew install sshrc
Sous Ubuntu, il y a un PPA dédié :
sudo add-apt-repository ppa:russell-s-stewart/ppa
sudo apt-get update
sudo apt-get install sshrc
Pour les autres systèmes, vous pouvez récupérer le script directement depuis le repo GitHub.
Une fois installé, créez un fichier ~/.sshrc avec vos configs préférées. Par exemple, vous pouvez mettre vos alias les plus utiles, quelques fonctions bash, et même des variables d’environnement spécifiques.
Ensuite, au lieu de taper ssh user@server
, vous faites sshrc user@server
et c’est tout. Derrière, l’outil fait sa magie noire en compressant vos configurations, en les envoyant sur le serveur, puis en les décompressant dans /tmp, et en sourçant le tout automatiquement. Vous pouvez même avoir des configurations différentes selon les serveurs en créant des fichiers comme ~/.sshrc.d/servername.
Pour les fans de vim, il y a une astuce sympa. Ajoutez cette ligne dans votre ~/.sshrc :
export VIMINIT="let \$MYVIMRC='$SSHHOME/.sshrc.d/.vimrc' | source \$MYVIMRC"
Et placez votre .vimrc dans ~/.sshrc.d/. Comme ça, vim utilisera votre config perso même sur le serveur distant.
Attention quand même, il y a une limite. Si votre dossier ~/.sshrc.d fait plus de 64KB, certains serveurs peuvent bloquer la connexion. C’est pour ça qu’une alternative existe : SSHdot. Cette variante n’a pas de limite de taille et fonctionne exactement pareil. C’est pratique si vous avez une config vim bien chargée avec plein de plugins.
D’ailleurs, pour ceux qui préfèrent une approche différente, il y a aussi la méthode git. Vous mettez tous vos dotfiles dans un repo, et vous configurez vos serveurs pour pull automatiquement à la connexion. C’est plus lourd à mettre en place mais ça scale mieux si vous gérez beaucoup de machines.
Un dernier truc sympa, sshrc fonctionne aussi avec tmux. Vous pouvez donc configurer tmux pour qu’il utilise vos raccourcis habituels même sur le serveur distant. Il suffit d’ajouter votre .tmux.conf dans ~/.sshrc.d et de définir un alias dans ~/.sshrc qui pointe vers cette config.
Au final, sshrc vous n’en aviez pas besoin, mais maintenant que vous savez qu’il existe, c’est un incontournable ! Bref, si vous en avez marre de retrouver un environnement spartiate à chaque connexion SSH, essayez-le, ça prend 2 minutes à installer et ça change vraiment la donne niveau confort de travail.