sshpass: lielisks rīks neinteraktīvai SSH pieteikšanai - nekad nelietojiet ražošanas serverī
Vairumā gadījumu Linux sistēmas administratori piesakās attālajos Linux serveros, izmantojot SSH, iesniedzot paroli vai bez paroles SSH pieteikšanos, vai SSH autentifikāciju uz taustiņiem.
Ko darīt, ja vēlaties ievadīt paroli kopā ar lietotājvārdu pašā SSH uzvednē? tas ir, ja sshpass nāk glābt.
sshpass ir vienkāršs un viegls komandrindas rīks, kas ļauj mums nodrošināt paroli (neinteraktīvu paroles autentifikāciju) pašai komandrindai, lai varētu izpildīt automatizētus čaulas skriptus, lai izveidotu dublējumkopijas, izmantojot cron plānotāju.
ssh izmanto tiešu TTY piekļuvi, lai pārliecinātos, ka paroli faktiski nodrošina interaktīvs tastatūras lietotājs. Sshpass palaiž ssh veltītā tty, maldinot to uzskatīt, ka tā saņem paroli no interaktīva lietotāja.
Svarīgi: sshpass izmantošana tiek uzskatīta par vismazāk drošu, jo tā atklāj paroli visiem sistēmas lietotājiem komandrindā ar vienkāršu komandu “ps”. Es ļoti iesaku izmantot SSH bez paroles autentifikāciju.
Instalējiet sshpass Linux sistēmās
Sistēmās, kuru pamatā ir RedHat/CentOS, vispirms jums ir jākomandē, kā parādīts.
# yum install sshpass # dnf install sshpass [On Fedora 22+ versions]
Debian/Ubuntu un tā atvasinājumos to var instalēt, izmantojot komandu apt-get, kā parādīts.
$ sudo apt-get install sshpass
Varat arī instalēt no avota, lai būtu jaunākā sshpass versija, vispirms lejupielādējiet pirmkodu un pēc tam izvelciet darvas faila saturu un instalējiet to šādi:
$ wget http://sourceforge.net/projects/sshpass/files/latest/download -O sshpass.tar.gz $ tar -xvf sshpass.tar.gz $ cd sshpass-1.06 $ ./configure # sudo make install
Kā Linux lietot sshpass
sshpass tiek izmantots kopā ar ssh, izsniedzot komandu, varat apskatīt visas sshpass lietošanas opcijas ar pilnu aprakstu:
$ sshpass -h
Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters -f filename Take password to use from file -d number Use number as file descriptor for getting password -p password Provide password as argument (security unwise) -e Password is passed as env-var "SSHPASS" With no parameters - password will be taken from stdin -h Show help (this screen) -V Print version information At most one of -f, -d, -p or -e should be used
Kā jau minēju iepriekš, sshpass ir ticamāks un noderīgāks skriptu izveidošanas nolūkos, apsveriet tālāk sniegtos komandu piemērus.
Piesakieties attālajā Linux ssh serverī (10.42.0.1) ar lietotājvārdu un paroli un pārbaudiet attālās sistēmas failu sistēmas diska lietojumu, kā parādīts.
$ sshpass -p 'my_pass_here' ssh [email 'df -h'
Svarīgi: šeit parole tiek norādīta komandrindā, kas praktiski nav droša, un šīs opcijas izmantošana nav ieteicama.
Tomēr, lai ekrānā netiktu rādīta parole, varat izmantot karodziņu -e
un ievadīt paroli kā SSHPASS vides mainīgā vērtību, kā norādīts zemāk:
$ export SSHPASS='my_pass_here' $ echo $SSHPASS $ sshpass -e ssh [email 'df -h'
Piezīme. Iepriekš redzamajā piemērā SSHPASS vides mainīgais ir paredzēts tikai pagaidu vajadzībām un tiks noņemts pārstartēšanas laikā.
Lai neatgriezeniski iestatītu SSHPASS vides mainīgo, atveriet failu/etc/profile un faila sākumā ierakstiet eksportēšanas priekšrakstu:
export SSHPASS='my_pass_here'
Saglabājiet failu un izejiet, pēc tam izpildiet zemāk esošo komandu, lai veiktu izmaiņas:
$ source /etc/profile
No otras puses, jūs varat arī izmantot karodziņu -f
un paroli ievietot failā. Tādā veidā jūs varat izlasīt paroli no faila šādi:
$ sshpass -f password_filename ssh [email 'df -h'
Varat arī izmantot sshpass, lai dublētu/sinhronizētu failus, izmantojot rsync, izmantojot SSH, kā parādīts:
------- Transfer Files Using SCP ------- $ scp -r /var/www/html/example.com --rsh="sshpass -p 'my_pass_here' ssh -l aaronkilik" 10.42.0.1:/var/www/html ------- Backup or Sync Files Using Rsync ------- $ rsync --rsh="sshpass -p 'my_pass_here' ssh -l aaronkilik" 10.42.0.1:/data/backup/ /backup/
Lai izmantotu vairāk, iesaku izlasīt sshpass man lapā, ierakstiet:
$ man sshpass
Šajā rakstā mēs izskaidrojām vienkāršu rīku sshpass, kas ļauj veikt interaktīvu paroles autentifikāciju. Lai arī šie rīki var būt noderīgi, ir ļoti ieteicams izmantot ssh drošāku publiskās atslēgas autentifikācijas mehānismu.
Lūdzu, atstājiet jautājumu vai komentāru, izmantojot tālāk sniegto atsauksmju sadaļu, lai turpinātu diskusijas.