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

  1. Unutar vašeg /home direktorija kreirate direktorij naziva .config/systemd/user/:

    mkdir -p ~/.config/systemd/user/
    
  2. Kreirajte/Editirajte datoteku ~/.config/systemd/user/ssh-agent.service:

    vi ~/.config/systemd/user/ssh-agent.service
    
  3. 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.