ssh-copy-id versus ruční kopírování id_rsa.pub

Náš podnikový server mě ze dne na den začal žádat o heslo SSH.

První věcí, kterou jsem zkontroloval, bylo zjistit, zda je můj klíč uvnitř .ssh/authorized_keys na serveru. Můj klíč byl uvnitř, nic se nezměnilo. Také v /etc/ssh/sshd_config se nic nezměnilo.

Pak jsem zkusil provést tento postup na čerstvě nainstalovaný server Ubuntu16. Po dokončení těchto 5 kroků mě nový server znovu požádal o heslo SSH.

Příkaz ssh-copy-id konečně dosáhl bezklíčového přihlášení SSH, ale všiml jsem si, že .ssh/authorized_keys má tři řádky: jeden začínající ssh-dss a 2x začínající ssh-rsa

Nyní si pamatuji, že 5krokový postup z výše uvedeného odkazu fungoval v minulosti pouze s jedním klíčem.

Změnilo se v poslední době něco? Proč výše uvedený postup již nefunguje?

Upravit: Protože ssh-copy-id zkopíruje celkem 3 klíče do .ssh/authorized_keys těchto klíčů lze najít v následujících souborech:

~/.ssh/id_dsa

~/.ssh/sshkey.pub

~/.ssh/id_rsa.pub

takže jsem odstranil řádek po řádku ze vzdáleného „s .ssh/authorized_keys souboru

smazáno ~/.ssh/id_dsa řádek – automatické přihlášení bylo úspěšné

smazáno ~/.ssh/id_rsa.pub řádek – automatické přihlášení bylo úspěšné

smazáno ~/.ssh/sshkey.pub řádek – automatické přihlášení ne úspěšné – požádáno o heslo

Je nutný pouze obsah z ~/.ssh/sshkey.pub. Proč SSH porovnává sshkey.pub a ne id_rsa.pub jako v příkladu z online kurzu?

Komentáře

  • Určitě ne kvůli zásadním změnám v souboru authorized_keys, nebo bych jednou jsem se probudil a zjistil jsem, že jsem uzamčen z celé řady strojů.
  • jaký druh klíče a kolik bitů? server, s kterým ' máte problémy, může mít vyšší standardy, pravděpodobně kvůli aktualizaci sshd. 1024 bit RSA se dříve považovalo za přijatelné. dnes je požadováno 2048 nebo 4096 bitů.
  • Také prosím přidejte ke své otázce výstup ssh -v your-remote-server.
  • Stále máte 640 příznaků na authorized_keys nebo něco přísnějšího (600)?

odpověď

Zdá se, že ssh-copy-id je pouze praktická funkce. Zkontroluje, zda již byly klíče do zařízení exportovány, v případě potřeby vytvoří adresář .ssh, ale v zásadě přidá veřejné klíče do .ssh/authorized_keys . ssh-copy-id je shell skript (v openssh), takže si jeho kód (vi `which ssh-copy-id`) můžete přečíst na konci:

[ "$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 

Během ověřování se kontroluje pouze authorized_keys. Z openssh dokumentace :

Soubor ~ / .ssh / authorized_keys uvádí veřejné klíče, které jsou povoleny pro přihlášení. Když se uživatel přihlásí, program ssh řekne serveru, který pár klíčů by chtěl použít pro autentizaci. Klient prokáže, že má přístup k soukromému klíči, a server zkontroluje, zda je odpovídající veřejný klíč autorizován k přijetí účtu.

Doufám, že to odpoví název otázky „ssh-copy-id versus ruční kopírování id_rsa.pub“. Tento soubor ~/.ssh/sshkey.pub nemám, takže doufám, že jste problémy s nastavením vyřešili sami. Ano, veřejný klíč můžete jednoduše zkopírovat ručně do authorized_keys nepoužívá ssh-copy-id.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *