web-dev-qa-db-fra.com

Que peut signifier 'itinérance non autorisée par le serveur' du client ssh?

Je ne parviens pas à me connecter à une instance de serveur SSH et la sortie commentée contient debug1: Roaming not allowed by server. Les problèmes prévisibles et évitables suivants se posent:

  • Itinérance signifie accéder aux services de différents types de réseaux. Je n'arrive pas à comprendre ce que cela pourrait signifier dans le contexte de la sortie prolixe d'un client ssh 6.6.1 exécuté sur Ubuntu 14.04.
  • Il n'est pas clair s'il s'agit d'une erreur ou non et s'il s'agit de l'échec de la connexion (je ne veux pas plonger ici dans l'échec de la connexion; cependant, aucun des messages de sortie de ssh ne BTW -> plus de problèmes et de temps d'attente - vous avez été prévenu!)
  • J'ai interrogé site:www.openssh.org roaming dans Google avec un résultat vide et les pages de manuel ne contiennent pas le terme. C'est absurde de l'utiliser même si cela a été documenté à cause de son ambiguïté!

Que pourrait signifier le message? Comment puis-je l'utiliser pour déboguer le grand ensemble d'autres erreurs très ambiguës, non intuitives et peu utiles, ainsi que d'autres messages de SSH?

25
Karl Richter

Ce n'est pas vraiment un message d'erreur. C'est juste un message de débogage vous indiquant que le serveur n'accepte pas les connexions itinérantes.

Le roaming est apparemment une fonctionnalité expérimentale ajoutée à OpenSSH en 2009 environ. L'objectif de cette fonctionnalité est de permettre à un client ssh de se déconnecter d'une session de serveur, puis de reprendre la session depuis un autre emplacement. Voir ici pour en savoir plus. Google, ssh, itinérance et "Martin Forssén" afficheront d'autres pages. Il ne semble pas que cela soit activement développé. Je soupçonne que les développeurs SSH ne l’ont jamais documentée car c’est expérimental et peut-être pas terminé.

En inspectant le code source OpenSSH, il existe une option non documentée côté client UseRoaming qui peut être définie sur yes ou no. Ajouter la ligne "UseRoaming no" à votre configuration client (normalement votre fichier .ssh/config) devrait supprimer le message de débogage.

Je ne comprenais pas pourquoi le paramètre HostbasedAuthentication côté serveur contrôlait si le serveur acceptait les connexions itinérantes ou non.

Mise à jour: le support d'itinérance client fait apparemment l'objet d'un rapport d'exposition aux vulnérabilités informatiques, CVE-2016-0777 . Les versions OpenSSH 5.4 à 7.1p1 sont vulnérables. Les utilisateurs doivent mettre à niveau vers OpenSSH 7.1p2 ou une version ultérieure. Les utilisateurs qui ne peuvent pas mettre à niveau doivent désactiver l'itinérance dans le client en ajoutant "UseRoaming no" à la configuration de leur client ssh. Voir ce qui suit:

21
Kenster

Le journal des modifications de openssh 5.3 sur CentOS6 a une note:

2009/06/27 
 Ajouter l’option client UseRoaming. Il ne fait encore rien mais contrôlera si le client tente d'utiliser l'itinérance s'il est activé sur le serveur 
. De Martin Forssen.
4
Andrew Daviel

@ ILMostro_7 chmod 600 registered_keys a bien fonctionné pour moi.

Pour le bénéfice de tous ceux qui arrivent ici en cherchant "Itinérance non autorisée par le serveur" sur Google et qui utilisent un client Linux (Ubuntu), vous pouvez corriger cet avertissement et alors voir: -

Agent admitted failure to sign using the key

Le remède à cela est donné à https://help.github.com/articles/error-agent-admitted-failure-to-sign/

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    # Agent pid 59566 (displays process id)
    $ ssh-add
    # Enter passphrase for /home/you/.ssh/id_rsa: [tippy tap]
    # Identity added: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)

'#' = commentaire. vous = votre-nom d'utilisateur. [tippy tap] = humo [u] r? = appuyez sur la touche Entrée.

J'espère que cela aide quelqu'un autant que ce Q & R m'a déjà aidé.

3
MartinRH

Ce message d'erreur peut s'afficher lorsque /etc/ssh/sshd_config n'a pas HostbasedAuthentication défini sur yes sur le serveur.

Je ne sais pas pourquoi.

Un autre problème peut être:

Vérifiez les autorisations sur le répertoire $ USER/.ssh qui devrait appartenir à l'utilisateur et être chmod 700. Le fichier registered_keys devrait également être chmod 700 et appartenir à l'utilisateur.

2
Nifle