2016-01-02 2 views
1

J'ai trois machineshg clone mercurial un repo à partir d'un serveur connecté via un autre serveur

local (windows) 
serverA (linux) with username as userA 
serverB (linux) with username as userB 

Je veux cloner un dépôt hg dans serverB à ma machine locale en utilisant TortoiseHg pour Windows. La machine serverB peut être ssh éd seulement si serverA. Donc, dans winScp/PuTTY, j'utilise l'option de tunnellisation pour me connecter à serverB à serverA. Mais comment le faire dans TortoiseHg? Je ne peux évidemment pas utiliser hg clone ssh://[email protected]://<path to repo>. Mais existe-t-il un moyen d'utiliser plusieurs commandes ssh? J'ai essayé l'approche ci-dessous et il n'a pas fonctionné:

$cat ~/.ssh/config

host serverB.example.com serverB 
    ProxyCommand /usr/bin/ssh serverA.example.com /usr/bin/nc %h %p 
+0

Que voulez-vous dire par "ne fonctionne pas"? Avez-vous essayé aussi la commande '-w' de la procuration? – Jakuje

Répondre

2

Vous avez les options suivantes:

  1. Vous pouvez transférer le port ssh sur serverA, dans votre .ssh/config ajouter quelque chose comme:

    host serverBtunnel 
        LocalForward 2222 serverB.example.com:22 
    

    commencer ensuite le tunnel (sur serverA) avec:

    ssh -N serverBtunnel 
    

    Après cela, vous pouvez cloner le repo (à partir de votre machine Windows) à l'aide:

    hg clone ssh://[email protected]:2222//<path to repo> 
    
  2. Créer le tunnel directement à partir Putty (voir here pour plus de détails). En gros:

    • Vous définirez et ajoutez le tunnel à serverB: defineTunnel
    • Ensuite, créez la session à serverA (qui aura le tunnel défini): enter image description here
    • De cette façon, vos fenêtres boîte (en supposant que la session ci-dessus est démarrée), vous serez en mesure de cloner le dépôt, en utilisant:

      hg clone ssh://[email protected]:2222//<path to repo> 
      
+0

mes fenêtres de la machine locale. – arunmoezhi

+0

@arunmoezhi S'il vous plaît voir ma réponse mise à jour. – dan

+0

Mauvais propriétaire ou permissions sur '~/.ssh/config'. Ai-je besoin de définir des permissions sur ce fichier – arunmoezhi