Si të automatizoni hyrjet në SSH nëse duhet të përdorni një fjalëkalim


SSH nuk ka një mënyrë të lehtë për të dërguar fjalëkalime përmes hyrjes standarde, duke e bërë të vështirë automatizimin. Megjithëse nuk është ideal për sigurinë, mund të automatizoni vërtetimin e fjalëkalimit SSH në skriptet bash duke përdorur mjetin sshpass .

Përpara se të fillojmë - përdorimi i fjalëkalimeve të automatizuara për SSH konsiderohet praktikë e keqe për një arsye. Në pothuajse të gjitha rastet, është më mirë të përdorni një çelës SSH, të cilin do ta tregojmë më poshtë. Megjithatë, fjalëkalimet kanë përfitimin e të qenit më të lehtë për t'u menaxhuar, mbajtur mend dhe shpërndarë te anëtarët e ekipit. Të gjitha këto janë njëkohësisht dobësitë për sigurinë, por ky është një kompromis që mund të zgjidhni të bëni.

Duke përdorur SSHPass

Komanda e rregullt ssh nuk ka një flamur --password për t'ju lejuar ta automatizoni këtë lehtësisht. Ju do të duhet të instaloni një mjet të quajtur sshpass për ta trajtuar këtë në mënyrë eksplicite. Mund ta shkarkoni nga shumica e menaxherëve të paketave Linux; për sistemet e bazuara në Debian si Ubuntu, kjo do të ishte:

sudo apt-get install sshpass

Nëse po përdorni sshpass nga brenda një skedari skripti, mund ta kaloni atë drejtpërdrejt me flamurin -p , i ndjekur nga komanda juaj standarde SSH:

sshpass -p 'password' ssh user@remote

Megjithatë, kjo nuk është praktikë e mirë për disa arsye:

  • Nëse përdoret jashtë një skedari skripti, ai ekspozon fjalëkalimin e tekstit të thjeshtë në historikun e komandave të Linux dhe sistemeve të tjera. Përdoruesit e tjerë të Linux mund ta shohin atë.
  • Mund të jetë e paqartë se ka një fjalëkalim të varrosur në këtë skedar skripti, gjë që mund të çojë në leje të këqija të skedarit që e ekspozojnë atë.
  • Mund të gjurmohet aksidentalisht në kontrollin e versionit dhe nuk lejon ndryshimin e fjalëkalimit të përdorur te klientët.

Për shkak të kësaj, në vend të kësaj, duhet të ruani fjalëkalimin në një skedar. Sigurohuni që të vendosni lejet për të për t'u siguruar që nuk është i aksesueshëm nga përdoruesit e tjerë.

echo "password" > password_file
chmod 600 password_file

Më pas, kaloni këtë te sshpass me -f:

sshpass -f password_file ssh user@remote

Vendosja e çelësave SSH në vend të kësaj

Çelësat SSH preferohen për shumicën e sistemeve. Ato janë shumë më të gjata, si dhe më të vështira për t'u rrjedhur aksidentalisht, duke i bërë ato ideale për sigurinë. Ata gjithashtu inkurajojnë vërtetimin e bazuar në identitet, pasi çelësat SSH zakonisht lidhen me makinën në të cilën janë krijuar.

SSH ruan çelësin tuaj publik në ~/.ssh/id_rsa.pub, të cilin e përdor për të gjitha kërkesat. Është e lehtë të gjenerosh një skedar të ri kyç:

ssh-keygen

Duhet ta shtoni këtë në skedarin ~/.ssh/authorized_keys në serverin me të cilin dëshironi të lidheni. Ekziston një komandë e integruar SSH që mund ta bëjë këtë lehtësisht për ju:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@host

Pasi të jetë bërë kjo, nuk do t'ju kërkohet më një fjalëkalim. Ju mund ta kopjoni këtë çelës në makina të tjera, por zakonisht është mirë të shtoni vetëm disa çelësa.

Ju do të dëshironi të çaktivizoni hyrjet me fjalëkalim në serverin në distancë dhe ndoshta të vendosni kufizimin e normës, listën e bardhë ose edhe vërtetimin me dy faktorë. Ju mund të lexoni udhëzuesin tonë për sigurimin e një makinerie të aksesueshme SSH për të mësuar më shumë.