Recimo da ste napisali bash skriptu koja skenira sve vaše Linux poslužitelje u vašem podatkovnom centru radi neprekidnog rada. Takva datoteka može sadržavati sljedeći sadržaj:
ssh $1 "uptime"
Kada pokrenete svoju skriptu, može se dogoditi da je zaustavi poslužitelj čiji SSH ključ još nije dodan u datoteku known_hosts. Zbog toga skripta ne može nastaviti rad i postaje beskorisna.
Sadržaj objave
Otisak prsta SSH ključa
Što je otisak prsta SSH ključa? Jednostavno: otisak ključa se provjerava kada se pokušate prijaviti na udaljeno računalo koristeći SSH. Kada se prvi put prijavite na SSH poslužitelj, vidjet ćete nešto poput ovoga prikazanog u nastavku.
Ako ne prihvatite otisak prsta, veza će se odmah prekinuti. Dakle, što se događa kada radite s bash skriptom koja ne može prihvatiti unos kako bi odobrila dodavanje udaljenog SSH otiska prsta?
Srećom, programeri SSH-a su se toga dosjetili i dodali naredbu koja vam omogućuje jednostavno dodavanje SSH otisaka u datoteku known_hosts.
Dodavanje otiska prsta
Pokazat ću dodavanje otiska prsta s udaljenog poslužitelja na lokalni stroj. Recimo da je udaljeni poslužitelj na 192.168.1.162. Da biste dodali taj otisak prsta, naredba bi bila:
ssh-keyscan -H 192.168.1.162 >> ~/.ssh/known_hosts
Naredba će se pokrenuti i dodati udaljeni SSH otisak prsta lokalnom računalu bez vašeg unosa, kao što je prikazano u nastavku.
Dakle, dodatak bash skripti može izgledati ovako:
ssh-keyscan $1 >> ~/.ssh/known_hosts
Gornji dodatak uzeo bi argument iz naredbe (recimo, na primjer, ./skripta 192.168.1.118) i dodao otisak prsta u ~/.ssh/known_hosts prije nego što prijeđe u sljedeći redak — čime se izbjegava problem s nedostajućim SSH otiskom prsta. Naravno, gore navedeno bi ispravno radilo samo ako imate postavke provjere autentičnosti ssh ključa. Inače biste morali unijeti lozinku udaljenog stroja.
Jednostavne stvari
Ponekad su jednostavne stvari te koje poremete naše bash skripte. Ako vam je taj ključni problem s otiskom prsta stvarao glavobolje s vašim skriptama, sada možete izbjeći problem.