Poate doriți să examinați ceva asemănător cu aştepta
, ceea ce ți-ar permite să faci ceva de genul acesta:
spawn vpn_connect.sh
așteptați „Nume utilizator de autentificare:”
trimite „protractor-container\r”
așteptați „Parola:”
trimite „superSecretPassword!123\r”
Desigur, acest lucru ar putea să nu fie ideal în cazul în care un număr de persoane au capacitatea de a se conecta la containerul Docker sau de a citi fișierele sursă care sunt împachetate în build, deoarece parolele cu text clar pot crea probleme.
O opțiune ar fi să creați un fișier separat care să conțină acreditările și să îl stocați într-o locație din containerul Docker, cum ar fi /root/.private/vpn-creds
. Acest fișier ar conține doar două rânduri:
raportor-recipient
superSecretPassword!123
Apoi vă puteți edita aştepta
scriptul să arate astfel:
#!/usr/bin/expect -f
setați fișierul de acces [deschideți „/root/.private/vpn-creds” r]
primește numele de utilizator $passfile
primește parola $passfile
închide $passfile
spawn vpn_connect.sh
așteptați „Nume utilizator de autentificare:”
trimite „$nume utilizator\r”
așteptați „Parola:”
trimite „$parola\r”
Rețineți, dacă toată lumea are rădăcină
acces, nu puteți face mare lucru într-un mod automat pentru a ascunde acreditările. O persoană hotărâtă cu sudo
cine știe să folosească StackExchange va găsi o modalitate de a obține informațiile dorite