linux ssh Certificate‐Based Authentication - ghdrako/doc_snipets GitHub Wiki

Unieszczenie certa jako wlasciciel konta

ssh-copy-id username@remote_host
ssh-copy-id -p 3022 [email protected]

or

Configure sshd to trust certyficates signed by user_ca.pub

/etc/ssh/sshd_config:

TrustedUserCAKeys /etc/ssh/user_ca.pub
systemctl restart sshd

Umieszczenie certa userowi z root-a

Klucz publiczny użytkownika należy umieścić w pliku authorized_keys w jego katalogu domowym na serwerze. Oto kroki:

  • Zaloguj się na serwerze jako ten sam użytkownik (lub jako root, jeśli dodajesz klucz dla innego konta):
ssh root@twoj-serwer
  • Utwórz (jeśli nie istnieje) katalog .ssh w katalogu domowym użytkownika:
mkdir -p /home/nazwa_uzytkownika/.ssh

Ustaw odpowiednie prawa dostępu do tego katalogu:

chown nazwa_uzytkownika:nazwa_uzytkownika /home/nazwa_uzytkownika/.ssh
chmod 700 /home/nazwa_uzytkownika/.ssh
  • Dodaj klucz publiczny do pliku authorized_keys:
    • Jeśli masz plik id_rsa.pub lokalnie, możesz przesłać go np. przez scp:
scp id_rsa.pub root@twoj-serwer:/tmp/id_rsa.pub

Następnie na serwerze:

    cat /tmp/id_rsa.pub >> /home/nazwa_uzytkownika/.ssh/authorized_keys
    rm /tmp/id_rsa.pub
  • Ustaw prawa dostępu do pliku authorized_keys:
chown nazwa_uzytkownika:nazwa_uzytkownika /home/nazwa_uzytkownika/.ssh/authorized_keys
chmod 600 /home/nazwa_uzytkownika/.ssh/authorized_keys
  • Sprawdź ustawienia SSH w /etc/ssh/sshd_config, aby mieć pewność, że linie te nie są zakomentowane i mają wartości:
PubkeyAuthentication yes
AuthorizedKeysFile     .ssh/authorized_keys

Jeśli coś zmienisz, zrestartuj demona SSH:

systemctl restart sshd

Przetestuj logowanie z maszyny klienckiej:

    ssh -i ~/.ssh/id_rsa nazwa_uzytkownika@twoj-serwer

Jeżeli wszystko jest poprawnie skonfigurowane, połączenie nie poprosi o hasło, a zalogujesz się kluczem publicznym. Uwaga:

    Jeśli serwer wykorzystuje SELinux, może być konieczne ustawienie kontekstu:
restorecon -R -v /home/nazwa_uzytkownika/.ssh

Dla konta root katalog to /root/.ssh/authorized_keys.