Puncte:0

SSHD: Amprenta cheii publice nu este așa cum era de așteptat

drapel ua

Două mașini sunt în imagine pentru problema mea:

  • Server: rulează Ubuntu Server 20.04.3 LTS, rulează serverul ssh
  • Client: rulează Ubuntu Desktop 20.04.3 LTS, rulează client ssh

Mă aștept să fie folosită perechea de chei ED25519 generată. Cheile sunt stocate după cum urmează:

  • id_ed25519.pub: atașat în ~/.ssh/authorized_keys pe „server”
  • id_ed25519: stocat în ~/.ssh pe „client”

Configurare pe server în /etc/ssh/sshd.config:

  • PubkeyAuthentication da
  • AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
  • PasswordAuthentication nr

Configurare pe client:

  • id_ed25519 este disponibil prin breloc (executând ssh-add pentru ssh-agent, cerând expresia de acces corect)

Acum ce mă dă bătăi de cap:

Pasul 1: Mă conectez de la client la server. Când accesez pentru prima dată (~/.ssh/known_hosts goale pe client) primesc: Amprenta cheii ECDSA este SHA256: [DefaultKeyFingerprint]. Sigur doriți să continuați conectarea? [DefaultKeyFingerprint] este un substituent pentru amprenta afișată. Se pare că nu este amprenta la care mă așteptam. Așteptările mele a fost: id_ed25519.pub este folosit de server pentru a obține amprenta. Acest lucru ar duce la o altă amprentă (verificată prin „ssh-keygen -l -f”). Să-l numim pe acesta [ExpectedFingerprint].

Am încercat să înțeleg de unde vine [DefaultKeyFingerprint]. Rezultat: Se potrivește cu cheia implicită ssh_host_ecdsa_key.pub generată de sshd în /etc/ssh/

Pasul 2: După ce accept avertismentul menționat mai sus, mă pot conecta cu succes.

Am vrut să înțeleg dacă a fost folosită cheia publică din spatele [DefaultKeyFingerprint] sau [ExpectedFingerprint]. Două indicații că [ExpectedFingerprint] a fost folosită:

  • Specificarea cheii private din spatele [DefaultKeyFingerprint] atunci când se execută „ssh” pe client nu este acceptată de „Server”, chiar și atunci când fișierul cheii private este specificat folosind opțiunea -i. Eroare este: Permisiune refuzată (cheie publică). Acest lucru se potrivește așteptărilor mele, deoarece am permis pe partea serverului în ~/.ssh/authorized_keys doar cheia publică care se potrivește la [ExpectedFingerprint]
  • Când rulez pe „Server”: starea systemctl ssh după conectare cu succes, primesc următoarea rezultat:
Dez 22 10:57:42 [my_machine] sshd[3255]: Cheie acceptată ED25519 SHA256:[ExpectedFingerprint] găsită la ~/.ssh/authorized_keys:1
Dez 22 10:57:42 [my_machine] sshd[3255]: cheie publică acceptată pentru [utilizator] de la 192.168.178.35 portul 50048 ssh2: ED25519 SHA256:[ExpectedFingerprint]
Dez 22 10:57:42 [my_machine] sshd[3255]: pam_unix(sshd:session): sesiune deschisă pentru utilizatorul [user] de (uid=0)

Intrebarile mele:

  • Puteți confirma argumentația mea de mai sus că de fapt a fost folosită [ExpectedFingerprint]?
  • De ce se afișează „Server” ca amprentă [DefaultKeyFingerprint] și nu [ExpectedFingerprint] și cum pot face ca „Server” să afișeze [ExpectedFingerprint]?

Observații - neștiind dacă contează: Când am generat perechea de chei care duce la [ExpectedFingerprint], am specificat un asterix în numele domeniului *.mydomain.com. Ieșirea ssh-keygen -l -f pentru ambele chei publice:

256 SHA256:[ExpectedFingerprint] *.mydomain.com (ED25519)
256 SHA256:[DefaultKeyFingerprint] root@mymachine (ECDSA)

Mulțumesc anticipat pentru gândurile tale.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.