SSH palvelimen hallintaan#

Tässä oppaassa kerrotaan, miten SSH-palvelin ja -asiakas valmistellaan käytettäväksi Nitrokeyn kanssa.

Nitrokey-avaimeen pitäisi olla jo asennettu PGP-avaimet ja paikallisen GnuPG-avaimenperän pitäisi tuntea avaimet.

Asiakkaan valmistelu#

  • Varmista, että ~/.gnupg/gpg.conf sisältää ’use-agent’

  • Lisää ssh-tuki gnupg-agenttiin lisäämällä ’enable-ssh-support’ tiedostoon ~/.gnupg/gpg-agent.conf.

  • Jos tiedostoa ei ole vielä olemassa, voit vain luoda sen.

  • Lisää seuraava koodi jonnekin ~/.bashrc-tiedostoosi (jos haluat kalakuoren, katso täältä).

unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
  • Käynnistä järjestelmä uudelleen tai kokeile pkill gpg-agent ja avaa uusi komentorivi varmistaaksesi, että kaikki on valmiina.

  • Jos ongelmia ilmenee, kokeile gpg2 --card-status ensimmäisellä käyttökerralla varmistaaksesi, että gpg-agentti käynnistyy.

Palvelimen valmistelu#

Voit luoda authorized_keys-tiedoston suorittamalla joko komennon

gpg2 --export-ssh-key keyID >> ~/authorized_keys

jossa

keyID

on aliavaimen tunniste, jota käytetään Nitrokey-avaimen todennukseen. Nitroavaimen on jo oltava paikallisen GnuPG-avaimenperän tiedossa. Voit nyt liittää tämän tiedoston etäpalvelimen authorized_keys-tiedostoon, ja kun siirryt ssh:llä palvelimelle, sinulta kysytään pin-koodia salasanan sijasta.

Vianmääritys#

Jos sinulta kysytään edelleen salasanaa, varmista, että

echo $SSH_AUTH_SOCK

palauttaa jotain tyyliin ’/run/user/1000/gnupg/S.gpg-agent.ssh’ tai ’/home/käyttäjänimi/.gnupg/.S.gpg-agent.ssh’. Valitettavasti GnuPG:hen on tehty joitakin muutoksia aiemmin, joten todellinen sisältö voi vaihdella järjestelmästä ja GnuPG-versiosta riippuen. Joissakin järjestelmissä voi olla jopa useita kansioita tähän muuttujaan tallennettuna. Sinun on mukautettava edellä annettua koodia .bashrc:ssä niin, että muuttuja SSH_AUTH_SOCK on oikea. Epäselvissä tapauksissa etsi ’SSH_AUTH_SOCK’ kohdasta

man gpg-agent

löytääksesi todellisen koodin versiollesi/järjestelmällesi.

Voit tarkistaa, onko sinulla ’pinentry’ -ohjelma asennettu paketinhallinnan kautta. Sinun on ehkä asetettava se myös gpg-agent.conf-tiedostossa. Sinun täytyy ehkä suuntaa gpg-agent oikeaan TTY:hen.