Astuces ssh
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 keychain pour partager ses clefs sur plusieurs sessions, ajouter par exemple :
keychain ~/.ssh/id_rsa ~/.ssh/id_dsa source ~/.keychain/*-sh
à votre .bash_profile.
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.