Jos olet pakko käyttää Linux-komentosarjaa yhteyden muodostamiseen salasanalla suojattuun resurssiin, luultavasti tuntuu levottomalta siitä, että salasana laittaa skripti. OpenSSL ratkaisee tämän ongelman sinulle.
Salasanat ja komentosarjat
Se ei ole loistava idea laittaa salasanoja Shell-komentosarjoihin. Itse asiassa se on todella huono idea. Jos komentosarja putoaa väärään käsiin, kaikki, jotka lukevat, voi nähdä, mitä salasana on. Mutta jos olet pakko käyttää käsikirjoitusta, mitä muuta voit tehdä?
Voit syöttää salasanan manuaalisesti, kun prosessi saavuttaa tämän pisteen, mutta jos komentosarja ajetaan vartioimatta, se ei toimi. Onneksi on vaihtoehto vaikea koodattava salasanat käsikirjoitukseen. Vastauslaitteella se käyttää erilaista salasanaa tämän saavuttamiseksi sekä jonkin verran voimakasta salausta.
Esimerkkiskenaamme meidän on tehtävä etäyhteys Fedora Linux-tietokoneeseen Ubuntu-tietokoneesta. Käytämme bash-shell-komentoa SSH-yhteyden muodostamiseksi Fedora-tietokoneeseen. Skriptin on toimitettava vartioimatta, emmekä halua laittaa salasanaa kauko-tilille käsikirjoituksessa. Emme voi käyttää SSH-näppäimiä tässä tapauksessa, koska me teeskentelemme, että meillä ei ole valvontaa tai järjestelmänvalvojan oikeuksia Fedora-tietokoneessa.
Aiomme käyttää tunnettuja
OpenSSL Toolkit
käsitellä salausta ja apuohjelmaa kutsutaan
spspass
Voit syöttää salasanan SSH-komentoon.
Liittyvät: Kuinka luoda ja asentaa SSH-näppäimet Linux Shellistä
Asentaminen OpenSSL ja SSHPASS
Koska monet muut salaus- ja tietoturvatyökalut käyttävät OpenSSL: tä, se voi olla jo asennettu tietokoneeseen. Kuitenkin, jos se ei ole, se vie vain hetken asentaa.
Kirjoita Ubuntu, kirjoita tämä komento:
sudo apt get OpenSSL
Asentaa
spspass
, käytä tätä komentoa:
sudo apt asentaa spshpass
Fedoralla sinun on kirjoitettava:
sudo dnf asennus OpenSSL
Komento asentaa
spspass
On:
sudo dnf asentaa sshpass
Manjaro Linuxissa voimme asentaa OpenSSL: n:
sudo pacman -syssl
Lopuksi asentaa
spspass
, käytä tätä komentoa:
sudo pacman-spspass
Salaaminen komentorivillä
Ennen kuin pääsemme käyttämään
opensl
Komento komentosarjoilla, tutustu siihen käyttämällä sitä komentoriviltä. Sanotaan, että etätietokoneen tilin salasana on
Rusty! Herring.Pitshaft
. Aiomme salata salasanan käyttämällä
opensl
.
Meidän on annettava salaussalasana, kun teemme. Salaussalasana käytetään salaus- ja salausprosesseissa. On paljon parametreja ja vaihtoehtoja
opensl
komento. Katsomme jokaiselle heistä hetkessä.
Echo 'Rusty! Herring.Pitshaft' | OpenSSL ENC -AES-256-CBC -MD SHA512 -A -PBKDF2 -TER 100000 -SALT -PASS PASS: 'Pick.Your.password'
Käytämme
kaiku
Voit lähettää kauko-tilin salasanan putken ja
opensl
komento.
The
opensl
Parametrit ovat:
- Enc -aes-256-CBC : Koodaustyyppi. Käytämme Kehittynyt salausstandardi 256-bittinen avain salaus salauslohkoketjulla.
- -MD SHA512 : Viesti Digest (HASH) tyyppi. Käytämme SHA512-kryptografista algoritmia.
-
-a
: Tämä kertoo
openslKäytä Base-64-koodausta salausvaiheen jälkeen ja ennen salauksen purkamisen jälkeen. - -pbkdf2 : Password-pohjaisen avainjohdannimen käyttäminen 2 (PBKDF2) tekee siitä paljon vaikeampaa raakavoiman hyökkäykselle, jotta voit menestyä salasanasi. PBKDF2 vaatii monia laskelmia salauksen suorittamiseksi. Hyökkääjällä olisi täydennettävä kaikki nämä laskelmat.
- -iter 100000 : Asettaa laskennan määrän, että PBKDF2 käyttää.
- -suola : Käyttämällä satunnaisesti levitetään suolaa arvo saa salatun lähdön eri joka kerta, vaikka pelkkä teksti on sama.
-
pass pass:’pick.your.password’
: Salasanan meidän täytyy käyttää purkaa salatun kauko salasana. korvike
pick.your.passwordtukevalla valitsemallasi salasanalla.
Salatun versio meidän
Rusty! Herring.Pitshaft
salasana kirjoitetaan pääteikkuna.
Jos haluat purkaa tämän, meidän täytyy kulkea että salattu merkkijono
opensl
samoilla parametrit käytimme salata, mutta lisäämällä vuonna
-D
(Decrypt) vaihtoehto.
kaiun U2FsdGVkX19iiiRNhEsG + wm / uKjtZJwnYOpjzPhyrDKYZH5lVZrpIgo1S0goZU46 | openssl enc -aes-256-CBC -MD SHA512 -a -D -pbkdf2 -iter 100000 -suolaa pass pass: 'pick.your.password'
Merkkijono puretaan, ja meidän alkuperäinen teksti-salasana kauko käyttäjätili-kirjoitetaan pääteikkuna.
Joka todistaa, että voimme turvallisesti salata syrjäinen käyttäjätilin salasanaa. Voimme myös purkaa sen, kun sitä tarvitsemme käyttämällä salasanaa, että me annetaan salauksen vaiheessa.
Mutta tämä todella parantaa tilannetta? Jos tarvitsemme salauksen salasanan purkaa etätili salasanan, varmasti salauksen salasanan täytyy olla script? No, kyllä, se tekee. Mutta salattu kauko käyttäjän salasana tallennetaan eri, piilotettu tiedosto. Käyttöoikeuksia tiedosto estää ketään, mutta sinä-ja järjestelmän pääkäyttäjän, ilmeisesti-käyttämästä sitä.
Lähettää lähdön salauskomento tiedostoon, voimme käyttää uudelleenohjaus. Tiedosto on nimeltään ”.secret_vault.txt.” Olemme muuttaneet salauksen salasanan jotain vahvempaa.
Echo 'Rusty! Herring.Pitshaft' | openssl ENC -aes-256-CBC -MD SHA512 -a -pbkdf2 -iter 100000 -suolaa pass pass: 'salaisuus # holvi! salasana' & gt; .secret_vault.txt
Mitään näkyviä tapahdu, mutta salasana salataan ja lähetetään ”.secret_vault.txt” tiedosto.
Voimme testata, että se toimi purkamalla salasana piilotiedosto. Huomaa, että käytämme
kissa
täällä, ei
kaiku
.
kissa .secret_vault.txt | openssl ENC -aes-256-CBC -MD SHA512 -a -D -pbkdf2 -iter 100000 -suolaa pass pass: 'salaisuus # holvi! salasana'
Salasana on onnistuneesti purettu datasta tiedostoon. Hyvin
käyttää
chmod
muuttaa tiedoston käyttöoikeudet, jotta kukaan muu ei voi käyttää sitä.
chmod 600 .secret_vault.txt
ls-l .secret_vault.txt
Käyttämällä luvat peittää 600 poistaa kaikki pääsy muille kuin tiedoston omistaja. Voimme nyt siirtyä Kirjoitamme myös käsikirjoituksen.
Liittyvät: Kuinka käyttää chmod Command Linux
Käyttäen OpenSSL on Script
Meidän kirjoitus on melko yksinkertainen:
#! / Bin / bash # Nimi etätili REMOTE_USER = pelle # Salasana etätili REMOTE_PASSWD = $ (cat .secret_vault.txt | OpenSSL ENC -aes-256-CBC -MD SHA512 -a -D -pbkdf2 -iter 100000 -suolaa pass pass: "salaisuus # holvi! Salasana) # Etätietokoneen REMOTE_LINUX = fedora-34.local # Yhteyden etätietokoneeseen ja laittaa aikaleima tiedostoon nimeltä script.log sshpass p $ REMOTE_PASSWD ssh -T $ REMOTE_USER @ $ REMOTE_LINUX & lt; & lt; _remote_commands ECHO $ Käyttäjä "-" $ (päivämäärä) & gt; & gt; /home/$REMOTE_USER/script.log _remote_commands
-
Asetamme muuttuja nimeltä
REMOTE_USERja ”pelle”. -
Sen jälkeen määritetään muuttuja nimeltään
REMOTE_PASSWDarvoon salaamattoman salasanan vedettiin ”.secret_vault.txt” tiedosto käyttäen samaa komentoa käytimme hetki sitten. -
Sijainti etätietokoneen tallennetaan muuttujaan nimeltä
REMOTE_LINUX.
Näiden tietojen, voimme käyttää
ssh
komento yhteyden etätietokoneeseen.
-
The
spspasskomento on ensimmäinen komento yhdistävällä viivalla. Käytämme sitä kanssa-p(Salasana) -vaihtoehto. Näin voit määrittää salasanan, joka olisi lähetettävässhkomento. -
Käytämme
-T(Poista pseudo-terminaali) -vaihtoehto käytöstässhKoska meidän ei tarvitse olla pseudo-tty, joka on kohdistettu meille etätietokoneessa.
Käytämme lyhyitä
Tässä asiakirja
Voit siirtää komennon etätietokoneeseen. Kaikki kahden välillä
_remote_commands
Strings lähetetään ohjeiksi etätietokoneen käyttäjäistunnossa - tässä tapauksessa se on yksi rivi bash-script.
Remote-tietokoneeseen lähetetty komento kirjataan yksinkertaisesti käyttäjätunnuksen nimen ja aikaleiman tiedostoon nimeltä "Script.log".
Kopioi ja liitä komentosarja editori ja tallenna se tiedosto nimeltä "Go-remote.sh". Muista muuttaa yksityiskohtia, jotka heijastavat oman etätietokoneen, etäkäyttäjätilin ja kauko-tilin salasanan osoitteen.
Käyttää
chmod
tehdä käsikirjoituksen suoritettavaksi.
Chmod + x go-remot.sh
Kaikki tämä on jäljellä, on kokeilla sitä. Lähdetään komentosarjan.
./ go-remote.sh
Koska käsikirjoitus on minimalistinen malli valvomattomalle käsikirjoitukselle, päätelaitteelle ei ole lähtöä. Mutta jos tarkistamme "Script.log" -tiedoston Fedora-tietokoneella, voimme nähdä, että etäyhteydet on onnistuneesti tehty ja että "script.log" -tiedosto on päivitetty aikaleimoilla.
Cat Script.log
Salasana on yksityinen
Kauko-tilisi salasana ei tallenneta käsikirjoitukseen.
Ja vaikka salauksen salauksen salasana On, Käsikirjoituksessa kukaan muu ei voi käyttää ".secret_vault.txt" -tiedostoa purkamaan se ja hakea kauko-tilin salasana.