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ë.