Is é an creideamh gur logáil isteach neamh-idirghníomhach iomlán é here-document le ceithre líne, agus seasann sé sin go díreach go dtí go dtairgeann an geata dhá ghrúpa, go gcuireann sé banner i gcló nó go n-iarrann sé comhartha tar éis an fhocail faire. Ansin clóscríobhann an script céanna an focal faire isteach i roghchlár a bhí ag súil le huimhir. Is féidir an cliant líne ordaithe ar Linux a scriptiú, ach amháin má thugann tú dó an rud a bhfuil sé ag súil leis i ndáiríre, ní an rud a ghlac an teagasc leis.

Is miotas é an here-document seasta

Suiteálann cliant Linux Cisco clár beag ag /opt/cisco/anyconnect/bin/vpn, agus soláthraíonn Secure Client 5 é fós. Agus an tseirbhís vpnagentd ag rith, léann an bratach -s freagraí ón ionchur caighdeánach san ord ina n-iarrann an cliant iad. Níl an t-ord sin seasta idir freastalaithe.

Cuireann roghchlár grúpa líne amháin leis. Cuireann banner logála isteach líne eile leis. Briseann iarraidh comhartha tar éis an fhocail faire script ceithre líne go hiomlán, mar ní raibh an chúigiú líne riamh le bheith ina comhartha. Tá an teip ciúin: faigheann an cliant an teaghrán mícheart, críochnaíonn an iarracht nascaidh, agus ní thuairiscíonn an script aon rud úsáideach.

Rith an cliant de láimh uair amháin i gcoinne an gheata agus an leagain chéanna, agus scríobh síos na leideanna san ord ina dtagann siad. Is é an tras-scríbhinn sin an tsonraíocht a chaithfidh do script a chomhlíonadh.

Cad a bhfuil an cliant ag fanacht leis

Sa ghnáthchás aon ghrúpa is é an t-ordú ná ainm úsáideora, focal faire agus uaireanta deimhniú bannaeir. Ní thagann an chéad líne de here-document chun bheith ina hinnéacs roghchláir ach amháin nuair a thaispeánann an freastalaí roghchlár i ndáiríre, agus sin an fáth a n-oibríonn an script céanna ag suíomh amháin agus a dteipeann sé ag an gcéad cheann eile.

/opt/cisco/anyconnect/bin/vpn -s connect vpn.example.net <<EOF
0
alice
$VPN_PASSWORD
y
EOF

Léigh é sin mar cheithre fhreagra ar cheithre cheist fhéideartha, ní mar phrótacal seasta. Is rogha roghchláir é an nialas, ní focal faire, agus glacann an y deiridh le banner nach gcuireann a lán geataí riamh.

Úsáid expect nuair nach bhfuil an t-ord intuartha

Nuair a athraíonn ord na leideanna, stop ag comhaireamh línte agus fan ar an leid. Seolann script expect an t-ordú connect, fanann sé ar an leid ainm úsáideora, seolann, fanann ar an leid focal faire, seolann, agus ansin fanann sé ar an staid nasctha. Tá a theorainn ama féin ag gach fanacht.

Caith le teorainn ama mar theip agus scoir. Clóscríobhfaidh script a leanann ag seoladh ionchur tar éis leid gan choinne an focal faire go fonnmhar isteach i mblaosc, i roghchlár nó in aon rud eile atá ag léamh. Sin mar a iompaíonn script logála isteach ina eachtra.

Tugann expect tras-scríbhinn duit freisin ar féidir leat a logáil gan an rún, agus is fiú níos mó í ná an cód scoir nuair a athraíonn geata a chuid leideanna tar éis uasghrádaithe.

Caithfidh an rún maireachtáil áit éigin

Tá laige amháin ag gach leagan den fhadhb seo: caithfidh an focal faire a bheith ann i bhfoirm ar féidir leis an gcliant a léamh. Má thugann tú ar láimh é mar argóint, nochtar sa tábla próiseas é. Má chuirtear trí phíopa é, is minic a théann sé i stair na blaoisce. Tá an dá rud inléite ag úsáideoirí áitiúla eile ar óstach léime roinnte.

install -m 600 /dev/null ~/.vpn-secret
umask 077; VPN_PASSWORD=$(cat ~/.vpn-secret) /opt/cisco/anyconnect/bin/vpn -s connect vpn.example.net

Is é comhad le móid 600 atá faoi úinéireacht an chuntais an t-íosmhéid, agus is rún i dtéacs soiléir ar an diosca fós é. Léann secret-tool lookup ó fháinne eochracha Linux, agus ar macOS déanann security find-generic-password -w an obair chéanna. San áit a dtacaíonn an eagraíocht le fíordheimhniú deimhniúcháin nó SAML, b’fhearr leat é sin, mar ní féidir le focal faire stóráilte móide MFA logáil isteach a chríochnú gan duine.

Deimhnigh an tollán, ansin glac an dúnadh ort féin

Ná bí ag brath ar easpa téacs earráide. Iarr ar an gcliant a staid agus seiceáil an chomhéadan go neamhspleách:

/opt/cisco/anyconnect/bin/vpn state
ip -brief address

Ba cheart Connected a bheith sa staid, agus ba cheart seoladh a bheith ag comhéadan tolláin. Ansin iarr aon acmhainn amháin a bhfuil an tollán le sroicheadh, mar is toradh fíor é staid nasctha gan bealach agus is furasta é a fhágáil ar lár.

Díphlugáil le vpn disconnect, agus lig don script a chuir an tollán ar bun an dúnadh a ghlacadh. Ídíonn obair theipte a fhágann seisiún oscailte suíochán ceadúnais agus breathnaíonn sé ar an gcéad duine eile a thriail mar fhadhb fhíordheimhniúcháin.

Ord na hoibre: deimhnigh vpnagentd, gabh fíor-ord na leideanna, roghnaigh here-document nó expect, coinnigh an rún as argv agus as an stair, fíoraigh an staid agus aon acmhainn amháin, agus ansin díphlugáil sa script céanna.

Ailt ghaolmhara