ssh-copy-id versus manual copy id_rsa.pub

De la o zi la alta, serverul companiei noastre a început să-mi ceară parola SSH.

Primul lucru pe care l-am verificat a fost să văd dacă cheia mea se afla în .ssh/authorized_keys pe server. Cheia mea era înăuntru, nimic nu s-a schimbat. De asemenea, în /etc/ssh/sshd_config nimic nu s-a schimbat.

Apoi am încercat să fac această procedură pe proaspăt serverul Ubuntu16 instalat. După ce am parcurs acești 5 pași, noul server mi-a cerut din nou parola SSH.

Comanda ssh-copy-id a reușit în cele din urmă conectarea SSH fără cheie, dar am observat că .ssh/authorized_keys are trei linii: una începând cu ssh-dss și 2x începând cu ssh-rsa

Acum îmi amintesc că procedura în 5 pași de la linkul de mai sus a funcționat în trecut cu o singură cheie.

S-a schimbat ceva recent? De ce procedura de mai sus nu mai funcționează?

Editați: Deoarece ssh-copy-id copiază în total 3 taste la .ssh/authorized_keys acele chei poate fi găsit în următoarele fișiere:

~/.ssh/id_dsa

~/.ssh/sshkey.pub

~/.ssh/id_rsa.pub

așa că am șters rând cu rând din fișierul „s .ssh/authorized_keys de la distanță

șters ~/.ssh/id_dsa linie – autentificare automată reușită

ștearsă ~/.ssh/id_rsa.pub linie – autentificare automată reușită

șters ~/.ssh/sshkey.pub linie – autentificare automată nu a reușit – s-a solicitat parola

Este necesar doar conținutul din ~/.ssh/sshkey.pub. De ce SSH compară sshkey.pub și nu id_rsa.pub ca în exemplul din tutorialul online?

Comentarii

  • Cu siguranță nu datorită modificărilor fundamentale aduse fișierului autorizat_keys sau aș vrea m-am trezit într-o zi pentru a mă găsi blocat dintr-o grămadă de mașini.
  • ce fel de cheie și câte biți? serverul cu care ' aveți probleme poate avea standarde mai ridicate, posibil datorită unei actualizări a sshd. RSA de 1024 biți era considerat acceptabil. în prezent sunt necesari 2048 sau 4096 biți.
  • De asemenea, vă rugăm să adăugați rezultatul ssh -v your-remote-server la întrebarea dvs.
  • Aveți în continuare 640 de semnalizări pe chei_autorizate sau ceva mai restrictiv (600)?

Răspuns

Se pare că ssh-copy-id este doar o funcție de comoditate. Verifică dacă cheile au fost deja exportate pe mașină, creează directorul .ssh dacă este necesar, dar practic adaugă doar chei publice la .ssh/authorized_keys . ssh-copy-id este un script shell (în openssh), astfel încât să puteți citi codul acestuia (vi `which ssh-copy-id`) la final:

[ "$DRY_RUN" ] || printf "%s\n" "$NEW_IDS" | \ ssh "$@" "exec sh -c "cd ; umask 077 ; mkdir -p .ssh && { [ -z ""`tail -1c .ssh/authorized_keys 2>/dev/null`"" ] || echo >> .ssh/authorized_keys ; } && cat >> .ssh/authorized_keys || exit 1 ; if type restorecon >/dev/null 2>&1 ; then restorecon -F .ssh .ssh/authorized_keys ; fi"" \ || exit 1 

În timpul autentificării sunt verificate numai authorized_keys. Din openssh documentație :

Fișierul ~ / .ssh / authorized_keys listează publicul chei care sunt permise pentru conectare. Când utilizatorul se conectează, programul ssh îi spune serverului ce pereche de chei ar dori să utilizeze pentru autentificare. Clientul demonstrează că are acces la cheia privată și serverul verifică dacă cheia publică corespunzătoare este autorizată să accepte contul.

Sper că acest lucru răspunde titlul întrebării dvs. „ssh-copy-id versus manual copy id_rsa.pub”. Acest fișier ~/.ssh/sshkey.pub nu am, așa că sper că ați rezolvat singur problemele cu configurarea dvs. Oricum, da, puteți copia manual manual cheia publică în authorized_keys nu utilizează ssh-copy-id.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *