Ivan Tomica

ssh-agent kao systemd servis

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:

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.

About 
Sysadmin on the everlasting journey of learning. Always in search for an opportunity to prove myself and to learn something new. My addiction is learning and my main goal is to excel in every aspect of Linux/Unix system administration.

0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *