SSH-tunnelin perustaminen plinkillä

Yhtiössämme voimme muodostaa yhteyden ulkomaailmaan vain vakioportteja käyttäen. Porttiin 8081 lähtevä liikenne on estetty palomuurin toimesta. Tämä on todellinen riesa. Meidän on julkaistava Javascript-kirjastomme Nexus-instanssissa. Tämä instanssi toimii pilvessä portissa 8081.

Käytämme jo Jenkinsin putkia työnkulkujemme automatisointiin. Päätettiin lisätä putkeen uusi vaihe: ssh-tunnelointi. Jenkins-instanssimme toimii Windows Server 2012 R2:ssa. Tunnelin luominen bashin avulla ei onnistu. Tutustuimme Powershelliin SSH-tunnelin luomiseksi, mutta näyttää siltä, että SSH:n toteutus Powershellissä ei ole tarpeeksi kypsä. Eräskriptit pelastavat!

Vähemmistö meistä käyttää Puttya SSH-istuntojen käsittelyyn. Ihmiset, jotka tekevät Puttyn, tekevät myös plinkin, joka on komentoriviliittymä Puttyn back-endiin. Yhdessä batch-tiedostojen kanssa voimme luoda SSH-tunnelin näin:

plink -v -x -a -T -C -noagent -ssh -pw "password" -L 8081:our-nexus-instance.com:8081 [email protected]

Sallikaa minun selittää yllä olevassa komennossa käytetyt eri liput:

  • -v : näytä sanalliset viestit
  • -x: ota käyttöön X11-tiedonsiirto
  • -a: ota käyttöön agentti-tiedonsiirto
  • -T: poista pty:n jako käytöstä
  • -C: enable compression
  • -noagent: disable use of Pageant (tarvitaan vain käytettäessä SSH-avaimia)
  • -ssh: käytä SSH-protokollaa
  • -pw: anna salasana
  • -L: välitä paikallinen portti etäosoitteeseen

Käyttämällä lippua ”-L” pystymme kartoittamaan paikallisen portin etäporttiin. Tämä tehdään käyttämällä seuraavaa syntaksia: <localport>:<remoteAddress>:<remotePort>. Tätä seuraa isäntänimi, johon haluamme muodostaa yhteyden, etuliitteenä käyttäjätunnus, jota käytetään yhteyden muodostamiseen: käyttäjätunnus@remoteHost.

Sisällyttämällä tämän komennon Jenkins-tiedostoomme voimme avata tunnelin etä-Nexus-instanssimme kanssa:

stage('Publish') {
steps {
bat "plink -v -x -a -T -C -noagent -ssh -pw 'password -L 8081:our-
nexus-instance:8081 [email protected]"
}
}

Vastaa

Sähköpostiosoitettasi ei julkaista.