sshpass: Interaktiw däl SSH giriş üçin ajaýyp gural - Hiç haçan önümçilik serwerinde ulanmaň


Köplenç Linux ulgam dolandyryjylary parol, ýa-da parolsyz SSH giriş ýa-da açar esasly SSH tassyklamasy bilen SSH ulanyp, uzakdaky Linux serwerlerine girýärler.

SSH islegine ulanyjy ady bilen bilelikde parol bermek isleseňiz näme etmeli? şu ýerde sshpass kömek edýär.

sshpass, buýruk buýrugynyň özüne paroly (interaktiw däl paroly tassyklamak) bermäge mümkinçilik berýän ýönekeý we ýeňil buýruk setir guralydyr, şonuň üçin kron meýilleşdirijisiniň ätiýaçlyk nusgalaryny almak üçin awtomatiki gabyk skriptleri ýerine ýetirilip bilner.

ssh parolyň interaktiw klawiatura ulanyjysy tarapyndan üpjün edilendigine göz ýetirmek üçin göni TTY girişini ulanýar. Sshpass ssh-i wepaly görnüşde işleýär, interaktiw ulanyjydan paroly alýandygyna ynanmak üçin ýalňyşýar.

Üns beriň: Iň ygtybarly hasaplanýan sshpass-dan peýdalanmak, ýönekeý “ps” buýrugy bilen buýruk setirindäki ähli ulgam ulanyjylaryna paroly açýar. SSH paroly ýok tanamaklygy ulanmagy maslahat berýärin.

Linux ulgamlaryna sshpass guruň

RedHat/CentOS esasly ulgamlarda ilki görkezilişi ýaly ýum buýrugy etmeli.

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

Debian/Ubuntu we olardan emele gelenlerde, görkezilişi ýaly apt-get buýrugy ulanyp gurup bilersiňiz.

$ sudo apt-get install sshpass

Ativea-da bolmasa, sshpass-iň iň soňky wersiýasyna eýe bolmak üçin çeşmeden gurnap, ilki deslapky kody göçürip alyp, soňra faýlyň mazmunyny çykaryp, şeýle gurup bilersiňiz:

$ 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 

Linux-da sshpass-y nädip ulanmaly

sshpass ssh bilen bilelikde ulanylýar, aşakdaky buýrugy bermek bilen sshpass ulanyş opsiýalarynyň hemmesini doly düşündirişler bilen görüp bilersiňiz:

$ 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

Öň hem belläp geçişim ýaly, sshpass skript maksatlary üçin has ygtybarly we peýdaly, aşakdaky mysal buýruklaryna serediň.

Ulanyjy ady we paroly bilen uzakdaky Linux ssh serwerine (10.42.0.1) giriň we görkezilişi ýaly uzakdaky ulgamyň faýl ulgamynyň disk ulanylyşyny barlaň.

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

Üns beriň: Bu ýerde parol buýruk setirinde üpjün edilýär, iş ýüzünde ygtybarly däl we bu opsiýany ulanmak maslahat berilmeýär.

Şeýle-de bolsa, ekranda parol görkezilmeginiň öňüni almak üçin, -e baýdagyny ulanyp, paroly aşakdaky ýaly SSHPASS gurşaw üýtgeýjisiniň bahasy hökmünde girizip bilersiňiz:

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

Bellik: aboveokardaky mysalda SSHPASS gurşaw üýtgeýjisi diňe wagtlaýyn maksatly bolup, gaýtadan açylanda aýrylar.

SSHPASS gurşaw üýtgeýjisini hemişelik düzmek üçin/etc/profil faýlyny açyň we faýlyň başynda eksport beýanyny ýazyň:

export SSHPASS='my_pass_here'

Faýly ýazdyryň we çykyň, üýtgeşmeleri ýerine ýetirmek üçin aşakdaky buýrugy işlediň:

$ source /etc/profile 

Başga bir tarapdan, -f baýdagyny hem ulanyp, paroly bir faýla goýup bilersiňiz. Şeýlelik bilen, paroly faýldan aşakdaky ýaly okap bilersiňiz:

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

Şeýle hem SSH ulanyp, rsync-dan faýllary ätiýaçlyk/sinhronlamak üçin sshpass ulanyp bilersiňiz:

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

Has giňişleýin ulanmak üçin sshpass adam sahypasyny okamagyňyzy maslahat berýärin:

$ man sshpass

Bu makalada sshpass-yň interaktiw däl paroly tassyklamaga mümkinçilik berýän ýönekeý guralyny düşündirdik. Bu gurallar peýdaly bolup bilse-de, ssh-iň has ygtybarly açar tanamak mehanizmini ulanmak maslahat berilýär.

Has giňişleýin pikir alyşmak üçin aşakdaky jogap bölüminiň üsti bilen sorag ýa-da teswir ýazmagyňyzy haýyş edýäris.