sshpass: Għodda Eċċellenti għal Login SSH Mhux Interattiv - Qatt Uża fuq Server tal-Produzzjoni


Fil-biċċa l-kbira tal-każijiet, l-amministraturi tas-sistema Linux jidħlu għal servers Linux remoti billi jużaw SSH jew billi jipprovdu password, jew login SSH mingħajr password, jew awtentikazzjoni SSH ibbażata fuq iċ-ċavetta.

X'jiġri jekk trid tipprovdi password flimkien mal-isem tal-utent lil SSH pront innifsu? dan huwa fejn sshpass jiġi biex isalva.

sshpass hija għodda sempliċi u ħafifa tal-linja tal-kmand li tippermettilna nipprovdu password (awtentikazzjoni tal-password mhux interattiva) lill-pront tal-kmand innifsu, sabiex ikunu jistgħu jiġu esegwiti skripts tal-qoxra awtomatizzati biex jieħdu backups permezz ta 'cron scheduler.

ssh juża aċċess dirett TTY biex jiżgura li l-password tkun fil-fatt fornuta minn utent tat-tastiera interattiva. Sshpass imexxi ssh f'tty dedikat, iqarraq biex jemmen li qed jirċievi l-password minn utent interattiv.

Importanti: L-użu ta 'sshpass meqjus bħala l-inqas sigur, peress li jiżvela l-password lill-utenti kollha tas-sistema fuq il-linja tal-kmand bi kmand sempliċi ps. Nirrakkomanda ħafna li tuża awtentikazzjoni SSH Passwordless.

Installa sshpass fuq Sistemi Linux

F'sistemi bbażati fuq RedHat/CentOS, l-ewwel trid tikkmanda yum kif muri.

# yum install sshpass
# dnf install sshpass    [On Fedora 22+ versions]

Fuq Debian/Ubuntu u d-derivattivi tiegħu, tista’ tinstallah billi tuża apt-get kmand kif muri.

$ sudo apt-get install sshpass

Alternattivament, tista 'tinstalla mis-sors biex ikollok l-aħħar verżjoni ta' sshpass, l-ewwel niżżel il-kodiċi tas-sors u mbagħad estratt il-kontenut tal-fajl tal-qatran u installah hekk:

$ 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 

Kif tuża sshpass fil-Linux

sshpass jintuża flimkien ma' ssh, tista' tara l-għażliet kollha ta' użu ta' sshpass b'deskrizzjonijiet sħaħ billi toħroġ il-kmand hawn taħt:

$ 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

Kif semmejt qabel, sshpass huwa aktar affidabbli u utli għal skopijiet ta 'scripting, ikkunsidra l-kmandi ta' eżempju hawn taħt.

Idħol fis-server ssh Linux remot (10.42.0.1) bl-isem tal-utent u l-password u iċċekkja l-użu tad-disk tas-sistema tal-fajls tas-sistema remota kif muri.

$ sshpass -p 'my_pass_here' ssh [email  'df -h' 

Importanti: Hawnhekk, il-password hija pprovduta fuq il-linja tal-kmand li hija prattikament mhux sigura u l-użu ta 'din l-għażla mhuwiex rakkomandat.

Madankollu, biex tevita li turi l-password fuq l-iskrin, tista' tuża l-marka -e u daħħal il-password bħala valur tal-varjabbli ambjentali SSHPASS kif hawn taħt:

$ export SSHPASS='my_pass_here'
$ echo $SSHPASS
$ sshpass -e ssh [email  'df -h' 

Nota: Fl-eżempju ta 'hawn fuq, il-varjabbli tal-ambjent SSHPASS huwa għal skop temporanju biss u se jitneħħa waqt il-bidu mill-ġdid.

Biex issettja b'mod permanenti l-varjabbli tal-ambjent SSHPASS, iftaħ il-fajl /etc/profile u ikteb id-dikjarazzjoni tal-esportazzjoni fil-bidu tal-fajl:

export SSHPASS='my_pass_here'

Issejvja l-fajl u oħroġ, imbagħad mexxi l-kmand hawn taħt biex taffettwa l-bidliet:

$ source /etc/profile 

Min-naħa l-oħra, tista' wkoll tuża l-bandiera -f u tpoġġi l-password f'fajl. B'dan il-mod, tista 'taqra l-password mill-fajl kif ġej:

$ sshpass -f password_filename ssh [email  'df -h'

Tista 'wkoll tuża sshpass biex tagħmel backup/sync fajls fuq rsync billi tuża SSH kif muri:

------- 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/

Għal aktar użu, nissuġġerik li taqra l-paġna man sshpass, ittajpja:

$ man sshpass

F'dan l-artikolu, spjegajna sshpass għodda sempliċi li tippermetti awtentikazzjoni tal-password mhux interattiva. Għalkemm, din l-għodda tista 'tkun ta' għajnuna, huwa rakkomandat ħafna li tuża l-mekkaniżmu ta 'awtentikazzjoni taċ-ċavetta pubblika aktar sigur ta' ssh.

Jekk jogħġbok, ħalli mistoqsija jew kumment permezz tat-taqsima tal-feedback hawn taħt għal aktar diskussjonijiet.