J'ai deux machines derrière un pare-feu, les ports SSH transmis à 2201 et 2202.
Quand je
ssh Host -p 2201
il demande si je fais confiance à la machine, je dis oui, il est ajouté à ~/.ssh/connais_hosts
Alors je
ssh Host -p 2202
Cela ne me laisse pas, car il y a déjà une entrée pour cette adresse IP dans ~/.ssh/known_Host:1
(le fichier était vide quand j'ai commencé, alors la ligne 1 est celle ajoutée par la précédente exécution SSH).
Cela se produit sur Centos 5.4.
Sur d'autres distributions (j'ai essayé arc), il apparaît que SSH correspond également aux ports connus. Je peux donc avoir plusieurs empreintes digitales pour plusieurs ports sur le même hôte/IP sans aucun problème.
Comment puis-je obtenir ce même comportement pour Centos?
Je n'ai rien trouvé dans man ssh_config
(ou du moins pas sans désactiver la vérification des empreintes digitales).
J'ai trouvé une solution temporaire. Si la known_hosts
Le fichier a plus d'une entrée pour la même adresse IP, il vérifiera tous avant de conclure que quelque chose ne va pas. Mais je détesterais vraiment que cela soit la solution.
Utilisez ceci si votre client OpenSSH ne prend pas en charge les entrées d'hôte + basées sur le port:
La directive 'globalknownhostsfile' peut être mal utilisé pour pointer vers un fichier différent pour chacune de vos 2 machines pare-feu (ici Alice et Bob). Cependant, ces deux fichiers doivent être préparés avec des touches hôtes correctes d'Alice ou Bob à l'avance, car elles ne sont pas écrites lors de l'acceptation des clés inconnues.
Ce n'est pas vraiment amusant de mettre en place mais une fois que cela est fait, ça marche.
Mon contournement précédent avant que cela ait été "StricthostKeyChecking NO" qui n'autorise pas SSH-Agent de transférer les clés ni d'avoir des ports transférés (bloqués par OpenSSH lorsqu'ils sont utilisés).
Mon .ssh/config ressemblait à ceci jusqu'à récemment:
Host hoppingstation
Hostname loginhost.somewhere.net
User me
LocalForward 2201 alice.somewhere.net:22
LocalForward 2202 bob.somewhere.net:22
Host alice
Hostname localhost
Port 2201
User root
ForwardAgent yes
GlobalKnownHostsFile /home/me/.ssh/known_hosts_alice
Host bob
Hostname localhost
Port 2202
User root
ForwardAgent yes
GlobalKnownHostsFile /home/me/.ssh/known_hosts_bob
ma solution; Ajouter des informations détaillées sur l'hôte à ~/.ssh/config
:
Host <someidentifier>
Hostname ip.add.re.ss
StrictHostKeyChecking no
User username
Port 2201
Host <someotheridentifier>
Hostname ip.add.re.ss
StrictHostKeyChecking no
User username
Port 2202
ensuite, vous pouvez faire ssh someidentifier
Sans même avoir à fournir -p
etc.