SSH tips & tricks
Générer une pair de clé publique/privée SSH
ssh-keygen
Pour bénéficier d'une authentification forte (lire ce post) :
ssh-keygen -o -a 100 -t ed25519
Le nom de cette clé ne sera peut être pas reconnu automatiquement par le client ssh, il peut alors etre utile de modifier son fichier ~/.ssh/config
(man ssh_config
) pour y spécifier la nouvelle clé par défaut avec la directive:
IdentityFile ~/.ssh/id_ed25519
Modifier la passphrase SSH
Pour modifier ou supprimer la passphrase lié à la clé SSH privée (celle qui est en locale et qui nous sert à s'authentifier sur les serveur distant):
ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
Diffuser sa clé publique via SSH
Dans le cas particulier de la copie de notre clé publique ssh sur une autre machine, une commande forte utile est ssh-copy-id
(demande le password):
ssh-copy-id username@destination
Exécution distant parallélisée
- Ansible : logiciel de gestion de configurations qui permet d'industrialiser le déploiement des applications sur des serveurs ssh
- parallel-ssh (Parallel versions of SSH-based tools): regroupe un ensemble de commandes (
pssh
,pscp
,prsync
,pnuke
, andpslurp
) permettant d'exécuter les même commandes sur plusieurs machines distantes. - Fabric (Simple Pythonic remote deployment tool): outil contrôlable via un script python (article sur l'usage puis sur Linuxjournal et un autre sur plus général sur les outils devops)
Copie de fichiers via SSH
Il est possible d'utiliser une connexion SSH pour copier un fichier entre 2 machines du réseau de façon sécurisée avec scp
et son homologue pour Windows WinScp
ou pscp.exe
PuTTY Secure Copy client de la suite Putty.
Télécharger
Pour copier d'un serveur SSH distant vers un répertoire local :
scp username_distant@nom_du_serveur_ssh_distant:/dossier_distant/fichier_distant /dossier_distant/tmp/
Uploader
Dans l'autre sens, local vers serveur SSH distant :
scp /dossier_local/fichier_local username_distant@nom_du_serveur_ssh_distant:/dossier_distant/
Liens
Renforcer la sécurité de son serveur SSHD Proxyfier SSH avec SSLH ou Squid