66 links
  • Ban's links
  • Home
  • Login
  • RSS Feed
  • ATOM Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
  • SSH ProxyCommand example: Going through one host to reach another server

    Très pratique quand pour accéder à un host on doit rebondir sur un autre.

    La solution naïve est bien sûr ssh host1 -t 'ssh host2', mais il y a plusieurs problèmes :

    • ne peut pas être automatisé proprement (autant que je sache) : pas de ssh unalias
    • nécessite -t pour un shell interactif
    • comme le second SSH est bêtement lancé sur la seconde machine, l'agent SSH local n'est pas disponible (on pourrait utiliser -A, mais ça apporte son lot de problèmes)

    La solution via ProxyCommand est beaucoup mieux, puisque ça donne un proxy au SSH local lui-même, donc pas besoin de -t explicite, et pas besoin de forwarder l'agent (ça se passe normalement à travers le tunnel ainsi créé).
    <edit> De plus, comme c'est une configuration au niveau de SSH, tout ce qui l'utilise en profite : scp, rsync, etc. </edit>
    <edit2> Ajout de la version avec ssh -W à la place de nc </edit2>

    J'en arrive personnellement à ça (avec les hosts renommés)

    # jump to server2 through server1
    Host server2
        ProxyCommand ssh -W %h:%p %r@server1
        # ou alternativement avec `nc` si ssh est trop vieux pour connaître -W
        #ProxyCommand ssh %r@server1 nc %h %p

    Bien sûr ça se combine avec un alias local facilement :

    # jump to server2 through server1
    Host localalias
        Hostname server2
        ProxyCommand ssh -W %h:%p %r@server1

    À noter que le lookup de server2 a lieu sur le proxy, donc un nom local au proxy marchera -- mais pas l'inverse, un alias local sur le client ne résoudra pas.

    Aussi, puisque la commande proxy est un SSH, on peut lui passer toute option SSH (dans mon cas, -4 par ce que le lien IPv6 entre moi et l'host a une forte latence que le lien IPv4 n'a pas).

    July 26, 2016 at 22:51:34 GMT+2 * - permalink -
    QRCode
    - http://www.cyberciti.biz/faq/linux-unix-ssh-proxycommand-passing-through-one-host-gateway-server/
    ssh linux
Links per page: 20 50 100
Shaarli - The personal, minimalist, super fast, database-free, bookmarking service by the Shaarli community - Help/documentation