![„Galeria de tapet” este un schimbător de tapet prietenos cu Shotwell pentru Ubuntu](/f/502642172bd8db69944d60e5d54538b4.png?width=100&height=100)
În majoritatea cazurilor, administratorii de sistem Linux se conectează la servere Linux la distanță folosind SSH fie prin furnizarea unei parole, fie autentificare SSH fără parolă, sau autentificare SSH bazată pe cheie.
Ce se întâmplă dacă doriți să furnizați un parola impreuna cu nume de utilizator la SSH prompt în sine? aici e locul sshpass vine să salveze.
sshpass este un instrument de linie de comandă simplu și ușor care ne permite să furnizăm parolă (parolă non-interactivă autentificare) la promptul de comandă în sine, astfel încât scripturile shell automate să poată fi executate pentru a face copii de rezervă prin intermediul programator cron.
ssh folosește acces TTY direct pentru a vă asigura că parola este de fapt furnizată de un utilizator interactiv de tastatură. Sshpass rulează ssh într-un tty devotat, inducându-l în eroare crezând că primește parola de la un utilizator interactiv.
Important: Folosind sshpass considerat a fi cel mai puțin sigur, deoarece acesta dezvăluie parola tuturor utilizatorilor de sistem de pe linia de comandă cu simplitate
„Ps” comanda. Recomand cu tărie utilizarea Autentificare SSH fără parolă.În RedHat / CentOS sisteme bazate, mai întâi trebuie activați depozitul Epel pe sistemul dvs. pentru ao instala folosind yum comanda așa cum se arată.
# yum instalați sshpass. # dnf install sshpass [On Fedora 22+ versiuni]
Pe Debian / Ubuntu și derivatele sale, îl puteți instala folosind comanda apt-get așa cum se arată.
$ sudo apt-get install sshpass.
Alternativ, puteți instala de la sursă pentru a avea cea mai recentă versiune de sshpass, descărcați mai întâi codul sursă și apoi extrageți conținutul fișierului tar și instalați-l astfel:
$ 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
sshpass se utilizează împreună cu ssh, puteți vizualiza toate sshpass opțiuni de utilizare cu descrieri complete prin emiterea comenzii de mai jos:
$ sshpass -h.
sshpass Help
Utilizare: sshpass [-f | -d | -p | -e] [-hV] parametrii comenzii -f nume fișier Ia parola de utilizat din fișier -d număr Utilizați numărul ca descriptor de fișier pentru obținerea parolei -p parolă Furnizați parola ca argument (securitate neînțeleaptă) -e Parola este transmisă ca env-var "SSHPASS" Fără parametri - parola va fi preluată de la stdin -h Afișează ajutorul (acest ecran) -V Versiunea pentru imprimare informație. Trebuie folosit cel mult unul dintre -f, -d, -p sau -e.
După cum am menționat mai devreme, sshpass este mai fiabil și mai util în scopuri de scriptare, luați în considerare exemplul de comenzi de mai jos.
Conectați-vă la serverul Linux ssh la distanță (10.42.0.1) cu numele de utilizator și parola și verificați utilizarea discului sistemului de fișiere a sistemului la distanță, așa cum se arată.
$ sshpass -p „my_pass_here” ssh [e-mail protejat] „df -h”
Important: Aici, parola este furnizată pe linia de comandă, ceea ce este practic nesigur și nu este recomandată utilizarea acestei opțiuni.
Cu toate acestea, pentru a preveni afișarea parolei pe ecran, puteți utiliza fișierul -e
semnalizați și introduceți parola ca valoare a SSHPASS variabila de mediu ca mai jos:
$ export SSHPASS =„my_pass_here”
$ echo $ SSHPASS. $ sshpass -e ssh [e-mail protejat] „df -h”
Notă: În exemplul de mai sus, SSHPASS variabila de mediu are doar scop temporar și va fi eliminată în timpul repornirii.
Pentru a seta permanent SSHPASS variabilă de mediu, deschideți fișierul /etc/profile fișier și tastați declarația de export la începutul fișierului:
export SSHPASS =„my_pass_here”
Salvați fișierul și ieșiți, apoi executați comanda de mai jos pentru a efectua modificările:
$ sursă / etc / profil
Pe de altă parte, puteți utiliza și fișierul -f
semnalizați și puneți parola într-un fișier. În acest fel, puteți citi parola din fișier după cum urmează:
$ sshpass -f password_filename ssh [e-mail protejat] „df -h”
De asemenea, puteți utiliza sshpass pentru transferați fișiere folosind scp sau backup / sincronizare fișiere prin rsync folosind SSH așa cum se arată:
Transferați fișiere utilizând 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 sau sincronizare fișiere folosind Rsync $ rsync --rsh = "sshpass -p „my_pass_here” ssh -l aaronkilik "10.42.0.1:/data/backup/ / backup /
Pentru mai multe utilizări, vă sugerez să citiți sshpass pagina manuală, tastați:
$ man sshpass.
În acest articol, am explicat sshpass un instrument simplu care permite autentificarea non-interactivă a parolei. Deși, aceste instrumente pot fi utile, este foarte recomandat să utilizați mecanismul de securizare a cheii publice mai sigur al ssh.
Vă rugăm să lăsați o întrebare sau un comentariu prin secțiunea de feedback de mai jos pentru orice discuții suplimentare.