blog:agent_ssh_et_authentification_par_mot_de_passe

Agent SSH et authentification par mot de passe

Lorsqu'on a un agent SSH chargé et que l'on cherche à se connecter à une machine sur laquelle on n'a pas de clef SSH, on obtient lamentablement :

[host_a]$ ssh luser@host_b
Received disconnect from 192.0.2.18: 2: Too many authentication failures for luser

Première solution :

[host_a]$ unset SSH_AUTH_SOCK
[host_a]$ ssh luser@host_b
luser@host_b's password:
...

En effet, ssh(1) a conscience qu'un agent est chargé et l'interroge si la variable d'environnement SSH_AUTH_SOCK existe et pointe sur une socket Unix ouverte par ssh-agent(1) (ici sur host_a).

Seconde solution :

[host_a]$ ssh -o "PreferredAuthentications password" luser@host_b
luser@host_b's password:
...

Cette dernière solution permet, si on fait du « renvoi d'agent » (option ForwardAgent yes dans $HOME/.ssh/config), d'utiliser une clef sur la machine host_b, quand bien même luser s'est authentifié par mot de passe sur host_b. Lors de la connexion, sshd(8) sur host_b lancera pour luser un autre agent et :

[host_b]$ ssh-add -l
4096 37:59:ff:99:c0:24:9a:ee:cf:24:dd:aa:7c:f6:cc:5c /Users/bofh/.ssh/foo (RSA)
4096 25:ff:d1:9c:87:cc:33:8a:bb:78:6d:60:aa:64:08:ee /var/users/bofh/.ssh/bar (RSA)

Ici, luser sur host_b peut utiliser deux clefs SSH, manifestement chargées depuis des machines différentes (par « renvoi d'agent » donc).

  • blog/agent_ssh_et_authentification_par_mot_de_passe.txt
  • Dernière modification : 2013/05/04 11:16
  • de pc