sshpass: suurepärane vahend mitteinteraktiivse SSH-i sisselogimiseks - mitte kunagi kasutada tootmisserveris


Enamasti logivad Linuxi süsteemiadministraatorid SSH-d kasutades Linuxi kaugserveritesse sisse kas parooli või paroolideta SSH-sisselogimise või võtmepõhise SSH-autentimise abil.

Mis siis, kui soovite SSH-viipale ise parooli ja kasutajanime edastada? siin tuleb sshpass päästmiseks.

sshpass on lihtne ja kerge käsurea tööriist, mis võimaldab meil pakkuda parooli (mitteinteraktiivse parooli autentimist) käsuviibale endale, nii et saab käivitada automatiseeritud shelliskripte varukoopiate tegemiseks croni ajastaja kaudu.

ssh kasutab sirget TTY-juurdepääsu, et veenduda, et parooli annab tegelikult interaktiivne klaviatuuri kasutaja. Sshpass käivitab ssh pühendatud tty-s, eksitades seda uskumises, et ta saab parooli interaktiivselt kasutajalt.

Oluline: sshpass'i kasutamine peetakse kõige vähem turvaliseks, kuna see paljastab kõigile käsureal olevatele süsteemikasutajatele parooli lihtsa käsuga “ps”. Soovitan tungivalt kasutada SSH-i paroolita autentimist.

Installige sshpass Linuxi süsteemidele

RedHat/CentOS-põhistes süsteemides peate kõigepealt käskima nagu näidatud.

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

Debiani/Ubuntu ja selle derivaatide saate selle installida, kasutades käsku apt-get, nagu näidatud.

$ sudo apt-get install sshpass

Teise võimalusena võite installida allikast, et teil oleks sshpass uusim versioon, laadige esmalt alla lähtekood, seejärel eraldage tõrvafaili sisu ja installige see nii:

$ 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 

Kuidas kasutada sshpassi Linuxis

sshpass kasutatakse koos ssh-ga, saate kõiki sshpass-i kasutusvõimalusi täielike kirjeldustega vaadata, väljastades alltoodud käsu:

$ 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

Nagu ma juba varem mainisin, on sshpass skriptimise eesmärgil usaldusväärsem ja kasulikum, kaaluge allpool toodud näite käske.

Logige sisse Linuxi kaugserverisse (10.42.0.1) kasutajanime ja parooliga ning kontrollige kaugsüsteemi failisüsteemi kettakasutust, nagu näidatud.

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

Tähtis: siin antakse parool käsureal, mis on praktiliselt ebaturvaline ja selle valiku kasutamine pole soovitatav.

Kuid parooli ekraanil kuvamise vältimiseks võite kasutada lippu -e ja sisestada parooli SSHPASS-i keskkonnamuutuja väärtusena järgmiselt:

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

Märkus. Ülaltoodud näites on keskkonnamuutuja SSHPASS ainult ajutiseks otstarbeks ja eemaldatakse taaskäivitamise ajal.

Keskkonnamuutuja SSHPASS jäädavaks määramiseks avage fail/etc/profile ja sisestage faili algusse eksportlause:

export SSHPASS='my_pass_here'

Salvestage fail ja väljuge, seejärel käivitage muudatuste sooritamiseks järgmine käsk:

$ source /etc/profile 

Teisest küljest võite kasutada ka lippu -f ja sisestada parooli faili. Nii saate failist parooli lugeda järgmiselt:

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

Samuti saate sshpassiga faile varundada/sünkroonida rsynci kaudu SSH abil, nagu näidatud:

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

Kasutamiseks soovitan teil lugeda läbi sshpass-i manulehe, tippige:

$ man sshpass

Selles artiklis selgitasime sshpass lihtsat tööriista, mis võimaldab parooli mitteinteraktiivset autentimist. Kuigi sellest tööriistast võib abi olla, on tungivalt soovitatav kasutada ssh-i turvalisemat avaliku võtme autentimise mehhanismi.

Palun jätke edasiste arutelude jaoks küsimus või kommentaar alloleva tagasiside jaotise kaudu.