Astuces ssh

De WikiBR

Créer un couple de clefs :

$ ssh-keygen -t dsa

Utiliser un password pour crypter la clef est important...

Mettre la clef sur le serveur cible :

$ ssh-copy-id -i ./ssh/id_dsa.pub serveur

ou bien ( en moins bien ) :

$ ssh serveur "cat >> .ssh/authorized_keys" < ./ssh/id_dsa.pub

Pour ne pas avoir à décrypter la clef à chaque utilisation, mais tout en la gardant en sécurité :

Démarrer ssh-agent:

$ eval  $(ssh-agent)

Ajouter une clef :

$ ssh-add

Forwarder l'agent (ie ne pas avoir à mettre de clef sur B pour faire ssh B puis ssh C depuis B )  :

ForwardAgent yes

Dans les .ssh/config de tous les hosts qui servent de relai, à défaut, utiliser -A dans la ligne de commande de ssh.

Utiliser des pseudo alias :

Dans un fichier texte ssh-aliases

#!/bin/bash
ssh $(basename $0) "$@"

puis le rendre utilisable :

chown root:root ssh-aliases &&
chmod 755 ssh-aliases &&
mv ssh-aliases ~/bin # ou ailleurs dans votre path, si c'est votre machine.

enfin supposons que toutes les machines habituelles aient leur nom dans le fichier './machines' :

for namae in $(cat machines); do
    ln -s ~/bin/{ssh-aliases,$namae}
done


Maintenant il suffit de taper le nom de la machine pour avoir un shell dessus. Le principe est que le script écrit plus haut regarde comment il a été appelé et invoque ssh en fonction.