Vous avez accumulé un certain nombre de clés SSH, et pour certains serveurs ou certains sites Web (github, bitbucket…), vous voulez utiliser une clé SSH et pas une autre. Ce serait en effet dommage de pusher votre commit Git avec la mauvaise identité.
Sous unix, le fichier ~/.ssh/config est votre ami, rajoutez lui :
Host Un alias pour l'host HostName Une IP ou un nom de domaine pour l'host User votre nom d'utilisateur IdentityFile le fichier de clé public à utiliser
Par exemple :
Host bitbucket.org HostName bitbucket.org User sam IdentityFile ~/.ssh/sam.pub Host local-dev HostName 192.169.0.10 User dev IdentityFile ~/.ssh/local-dev.pub
On peut créer plusieurs Host pour le même hostname, avec des résultats intéressants quand on a plusieurs identités en ligne.
J’ai un peu abusé sur le franglais là…
En vrac:
# Ne pas vérifier la clé de l'hôte
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
# Établir une connection "maître"
ControlMaster auto
# Passer toutes les autres connections sur cet hôte par la connection maître
# Ainsi une 2nde connection sur un hote déjà connecté ne demandera pas de mot de passe.
ControlPath /tmp/ssh-%r@%h:%p
## Tunnel vers toto
Host tunnel.toto.mydomain.org
HostName ip_pub.mydomain.org
port 12345
User turlutte
LocalForward PORT_LOCAL toto.domain.org:PORT_DISTANT
Et pour sautiller entre les serveurs sans avoir à faire plusieurs ssh:
Host MonServeur
hostname ip.du.serveur.final
ForwardAgent yes
ProxyCommand ssh host.de.la.passerelle "nc -q0 %h %p" 2> /dev/null
il y a aussi Belier disponible sur pypi qui permet d’automatiser l’enchaînement de plusieurs connexions ssh …
basé sur python et expect, c’est orienté Linux ;)
J’avoue que jusque là, j’avais jamais eu besoin de ces spécificités…
…mais ça peut être bien utile ; merci Sam et merci aux commentateurs qui rajoutent du stuff !
Je crois que je vais remettre les mains dans le cambouis fissa… *miam*
:-)
pour gérer les connexions SSH en python, il y a aussi storm basé sur paramiko