Zaštititi privatne SSH ključeve snažnom lozinkom je pametna stvar. U slučaju da vam netko uspije ukrasti privatni SSH ključ imate vremena “u miru” zamijeniti isti jer da bi ga koristili trebaju pogoditi i lozinku za otključavanje vašeg privatnog ključa. Prilikom svakog povezivanja putem ssh ili scp programa potrebno je unijeti lozinku kako bi se ključ dekriptirao te kako bi smo se mogli pomoću njega spojiti.
SSH agent je program koji cacheira vaš dešifrirani privatni ključ te ga ustupa klijentskim SSH programima. Koristeći SSH agent potrebno lozinku je potrebno upisati samo jednom nakon čega se ključ dodaje u cache SSH agenta.
Postoji više načina za postavljanje SSH agenta. Prema mojem osobnom mišljenju najjednostavniji i najlakši način je pokretanje SSH agenta kao systemd korisnik.
Kako bi ste napravili gore navedeno pratite sljedeće korake
-
Unutar vašeg
/home
direktorija kreirate direktorij naziva.config/systemd/user/
:mkdir -p ~/.config/systemd/user/
-
Kreirajte/Editirajte datoteku
~/.config/systemd/user/ssh-agent.service
:vi ~/.config/systemd/user/ssh-agent.service
-
Dodajte sljedeći unos:
[Unit] Description=SSH key agent [Service] Type=forking Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket ExecStart=/usr/bin/ssh-agent -a $SSH_AUTH_SOCK [Install] WantedBy=default.target
Nakon što ste napravili navedeno biti će vam kreiran systemd servis kojim manipulirate kao i ostalim servisima na sustavu, no budući da se ne izvodi kao sistemski servis već kao servis korisnika za manipulaciju se koristi naredba systemctl --user
(umjesto systemctl
).
Kako bi smo vidjeli listu “unit-a” koristimo naredbu systemctl --user list-unit-files
:
Da bi se SSH agent pokretao prilikom podizanja sustava potrebno ga je omogućiti a to možemo napraviti pomoću naredbe
systemctl --user enable ssh-agent.service
a kako bi se aktivirao socket potrebno je dodati unos poput
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
u “startup” datoteku (npr. .bash_profile
).
TIP: _Ako vam se servis ne podigne automatski nakon reboot-a sustava provjerite da li je u datoteci
/etc/pam.d/system-login
zakomentirana linija
session optional pam_systemd.so
te ako je, odkomentirajte je i spremite datoteku.