SSH tunnelien ketjuttaminen

Viestiketju Linux -keskustelu -osiossa. Ketjun avasi stuubr 07.07.2010.

  1. stuubr

    stuubr Member

    Liittynyt:
    16.10.2006
    Viestejä:
    2
    Kiitokset:
    0
    Pisteet:
    11
    En ole aivan varma, että tuliko oikeeseen ketjuun, mutta anyway.

    Onko mahdollista ketjuttaa SSH tunneleita yhdellä komennolla terminaalista? Siis, että ei tarvitse erikseen luoda aina uutta tunnelia manuaalisesti kun on luonut edellisen tunnelin.

    Case: SSH tunneli hostilta A -> B -> C -> D

    Nyt muodostan tunnelin seuraavasti:

    host A: ssh -L 5903:localhost:5904 käyttäjätunnusB@hostB.fi

    host B: ssh -L 5904:localhost:5905 käyttäjätunnusC@hostC.fi

    host C: ssh -L 5905:localhost:5900 käyttäjätunnusD@hostD.fi

    Eli onko kyseinen tunnelien ketjuttaminen mahdollista yhden rivin komennolla hostilta A? Jos on niin kuinka?
     
  2.  
  3. Betrayed

    Betrayed Moderator Ylläpitäjä

    Liittynyt:
    12.10.2004
    Viestejä:
    1,585
    Kiitokset:
    2
    Pisteet:
    68
    Onnistuu, lisäät vaan ~/.bashrc tiedostoon rivin:

    alias tunneliketju='ssh -L 5903:localhost:5904 käyttäjätunnusB@hostB.fi && ssh -L 5904:localhost:5905 käyttäjätunnusC@hostC.fi && ssh -L 5905:localhost:5900 käyttäjätunnusD@hostD.fi'

    ja "tunneliketju"-sanan paikalle voit laittaa minkä tahansa sanan, jatkossa ton ketjun luominen tapahtuu kirjoittamalla vain "tunneliketju" konsoliin.
     
  4. stuubr

    stuubr Member

    Liittynyt:
    16.10.2006
    Viestejä:
    2
    Kiitokset:
    0
    Pisteet:
    11
    Kiitos vinkistä!

    Itseasissa tuo ei komento ei suoraan yhdistänyt hostille D vaan ensiksi hostille B ja siellä loggaamalla ulos yhdisti suoraan hostille C jne.

    Ongelma kuitenkin ratkesi jättämällä && pois komennosta:

    tunneliketju='ssh -L 5903:localhost:5904 käyttäjätunnusB@hostB.fi ssh -L 5904:localhost:5905 käyttäjätunnusC@hostC.fi ssh -L 5905:localhost:5900 käyttäjätunnusD@hostD.fi'

    Ensiksi tämä herjasi seuraavaa: "Pseudo-terminal will not be allocated because stdin is not a terminal.". Lisäämällä flag -t tunnelointi onnistui kuitenkin halutulla tavalla. Eli:

    tunneliketju='ssh -t -L 5903:localhost:5904 käyttäjätunnusB@hostB.fi ssh -t -L 5904:localhost:5905 käyttäjätunnusC@hostC.fi ssh -L 5905:localhost:5900 käyttäjätunnusD@hostD.fi'
     
  5. Betrayed

    Betrayed Moderator Ylläpitäjä

    Liittynyt:
    12.10.2004
    Viestejä:
    1,585
    Kiitokset:
    2
    Pisteet:
    68
    Noh, kukaan ei ole täydellinen :) hyvä että jotain tuosta pysty kuitenkin käyttämään, kun ei ollut linux-konetta lähistöllä millä olisin mokomaa voinut testata.

    Pääasia kuitenkin että toimii.
     

Jaa tämä sivu