Question OpenSSH désactive ControlMaster pour un nom d'hôte donné


j'utilise OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011 avec Mac OS X Snow Leopard. j'ai ControlMaster fonctionnalité configurée pour maintenir des connexions persistantes. ma ~/.ssh/config avoir les éléments suivants:

Host *
  ControlPath /ms/%r@%h:%p
  ControlMaster auto
  ControlPersist 4h

Host *.unfuddle.com
  ControlMaster no

Cependant, d'après ce que je vois - même lorsque j'essaie d'utiliser SSH pour des hôtes unfuddle.com, la connexion principale est toujours créée:

[andrey-mbp ~] $ ssh -v git@droolit.unfuddle.com
OpenSSH_5.9p1, OpenSSL 0.9.8r 8 février 2011
debug1: Lecture des données de configuration /Users/akhkharu/.ssh/config
debug1: /Users/akhkharu/.ssh/config ligne 1: Application des options pour *
debug1: /Users/akhkharu/.ssh/config ligne 6: Application des options pour * .unfuddle.com
debug1: Lecture des données de configuration /usr/local/Cellar/openssh/5.9p1/etc/ssh_config
debug1: auto-mux: essai du maître existant
debug1: le socket de contrôle "/ms/git@droolit.unfuddle.com:22" n'existe pas
debug1: Connexion au port 22 de droolit.unfuddle.com [174.129.5.196].
debug1: connexion établie.
debug1: fichier d'identité /Users/akhkharu/.ssh/id_rsa type 1
debug1: fichier d'identité /Users/akhkharu/.ssh/id_rsa-cert type -1
debug1: fichier d'identité /Users/akhkharu/.ssh/id_dsa type 2
debug1: fichier d'identité /Users/akhkharu/.ssh/id_dsa-cert type -1
debug1: fichier d'identité /Users/akhkharu/.ssh/id_ecdsa type -1
debug1: fichier d'identité /Users/akhkharu/.ssh/id_ecdsa-cert type -1
debug1: protocole à distance version 2.0, version du logiciel distant OpenSSH_5.8
debug1: match: OpenSSH_5.8 pat OpenSSH *
debug1: activation du mode de compatibilité pour le protocole 2.0
debug1: chaîne de version locale SSH-2.0-OpenSSH_5.9
debug1: SSH2_MSG_KEXINIT envoyé
debug1: SSH2_MSG_KEXINIT reçu
debug1: kex: serveur-> client aes128-ctr hmac-md5 aucun
debug1: kex: client-> serveur aes128-ctr hmac-md5 aucun
debug1: envoi de SSH2_MSG_KEX_ECDH_INIT
debug1: attente de SSH2_MSG_KEX_ECDH_REPLY
debug1: clé d'hôte du serveur: RSA a6: 74: 33: 36: 95: 31: 6e: a6: d7: 71: 87: b8: 3c: 38: e2: 60
debug1: l'hôte 'droolit.unfuddle.com' est connu et correspond à la clé de l'hôte RSA.
debug1: clé trouvée dans /Users/akhkharu/.ssh/known_hosts:390
debug1: ssh_rsa_verify: signature correcte
debug1: SSH2_MSG_NEWKEYS envoyé
debug1: attente de SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS reçu
debug1: l'itinérance n'est pas autorisée par le serveur
debug1: SSH2_MSG_SERVICE_REQUEST envoyé
debug1: SSH2_MSG_SERVICE_ACCEPT reçu
debug1: authentifications qui peuvent continuer: publickey
debug1: Méthode d'authentification suivante: publickey
debug1: offre de la clé publique RSA: /Users/akhkharu/.ssh/id_rsa
debug1: le serveur accepte la clé: pkalg ssh-rsa blen 277
debug1: authentification réussie (publickey).
Authentifié auprès de droolit.unfuddle.com ([174.129.5.196]: 22).
debug1: configuration du socket multiplex master
debug1: channel 0: new [/ms/git@droolit.unfuddle.com:22]
debug1: control_persist_detach: processus principal d'arrière-plan
debug1: forger en arrière plan
debug1: Entrée en session interactive.
debug1: connexion de contrôle de multiplexage
debug1: channel 1: new [mux-control]
debug1: channel 2: new [session client]
debug1: Remote: Commande forcée.
debug1: Remote: Le transfert de port est désactivé.
debug1: Remote: le transfert X11 est désactivé.
debug1: Remote: Le transfert de l'agent est désactivé.
debug1: Remote: Allocation de Pty désactivée.
debug1: Remote: Commande forcée.
debug1: Remote: Le transfert de port est désactivé.
debug1: Remote: le transfert X11 est désactivé.
debug1: Remote: Le transfert de l'agent est désactivé.
debug1: Remote: Allocation de Pty désactivée.
debug1: mux_client_request_session: ID de session maître: 2
La demande d'allocation PTY a échoué
Besoin de SSH_ORIGINAL_COMMAND
debug1: client_input_channel_req: channel 2 rtype exit-status reply 0
debug1: client_input_channel_req: channel 2 rtype eow@openssh.com reply 0
debug1: channel 2: free: client-session, nchannels 3
debug1: channel 1: free: mux-control, nchannels 2
Connexion partagée à droolit.unfuddle.com fermée.
[andrey-mbp ~] $ ll / ms /
total 0
srw ------- 1 akhkharu admin 0B 17 juillet 11:55 git@droolit.unfuddle.com: 22

Merci,
Andrey.


16
2017-07-17 07:57


origine




Réponses:


Votre * la strophe hôte l’attrape. Mettez des strophes hôtes plus spécifiques plus tôt.


18
2017-07-17 08:02



Merci, mais ça ne marcherait pas pour moi. J'ai besoin de ControlMaster pour tous les hôtes, mais pas pour unfuddle.com. Je ne peux pas lister tous les hôtes que j'utilise dans un fichier de configuration. Ce qui semble fonctionner, c’est de placer la règle pour unfuddle.com au tout début. - Andrey Chernih
Vous voulez dire ... quand vous avez mis la strophe hôte plus spécifique plus tôt? - Ignacio Vazquez-Abrams
Ouais, c'est étrange, mais ça marche. - Andrey Chernih
Je cherchais dans les pages de manuel depuis des siècles, mais c’est une étrange priorité! - JanKanis
J'ai bien peur de me demander jusqu'à mon dernier jour si Andrey avait déjà compris que cette réponse était correcte et que le commentaire avec lequel il était d'accord le prouve. - vastlysuperiorman


Comme décrit dans la réponse à ma question similaire sur SuperUser, vous pouvez utiliser la syntaxe "bang" pour exclure des hôtes spécifiques de la Host * strophe, comme ceci:

Host * !*.unfuddle.com
    ControlPath /ms/%r@%h:%p
    ControlMaster auto
    ControlPersist 4h

Dans ma situation, j’ai trouvé que l’ordre du Host sections lors de l'utilisation d'un Host * semblait ne pas être pertinent, mais la méthode ci-dessus fonctionne toujours.


8
2018-05-22 18:01





Pour moi, ça marche quand je mets en plus ControlPath à none dans le host strophe.

Tu peux essayer:

Host *.unfuddle.com   
    ControlMaster no
    ControlPath none

Ensuite, aucune session de contrôle ne sera générée.


4
2018-03-03 08:37



Dans mon cas, je devais le faire et mettre le Host * section à la fin du fichier et cela a fonctionné. - a3nm