Какво да правя, когато удостоверяването въз основа на ключ не работи след ssh-copy-id

Наскоро осигурих виртуален частен сървър на Ubuntu (VPS) на Vultr. Аз лично съм привързан към CentOS, но задачата, върху която работех, препоръча Ubuntu.

За да настроите удостоверяване въз основа на ключ от моя лаптоп към сървъра,

  • Генерирах нова парола на SSH ключове (наречена „ubuntu“) на моя Mac, използвайки командата: ssh-keygen -t rsa -b 4096
  • След това използвах ssh-copy-idпомощната програма, за да копирам публичния си ключ във authorized_keysфайла на моя Vultr VPS:ssh-copy-id -i .ssh/ubuntu [email protected]

Както очаквах, помощната програма поиска моята VPS парола, за да завърши прехвърлянето на публичния ключ. Когато всичко приключи, аз се опитах да вляза в моя VPS.

Трябваше да ме прокара, без да изисква парола:

ssh -i .ssh/ubuntu [email protected]

Но продължавах да получавам подкана за парола. ?

  • Проверих authorized_keysфайла си на VPS, за да се уверя, че публичният ми ключ е бил копиран правилно. Проверете. ??
  • Уверих се, че файлът е четен-писан само за себе си и за никой друг. Проверете. ??
  • Уверих се, че следните опции са активирани в /etc/ssh/sshd_config: PubkeyAuthentication yesи AuthorizedKeysFile .ssh/authorized_keys. Проверете. ??

И все пак непрекъснато получавах подкана за парола при влизане от лаптопа си.

След няколко минути на StackOverflow научих за Encrypted Home Directories, които са по подразбиране в някои среди, включително Ubuntu.

Шифрованите домашни директории не се дешифрират, докато първоначалното влизане е успешно. Моят authorized_keysфайл обаче се съхранява в домашната ми директория.

Следователно, първият ми опит за свързване ще изисква парола. Следващите връзки ще успеят без парола, тъй като SSH услугата ще може да чете моя authorized_keysфайл в моята дешифрирана домашна директория.

За да заобиколя това, създадох директория, кръстена на потребителското ми име, aritdevизвън моята домашна директория (избрах я /etc/) и й дадох пълни разрешения за себе си, но разрешения за четене и изпълнение за всички останали. След това преместих authorized_keysфайла си в /etc/aritdev/. След това актуализирах AuthorizedKeysFileпараметъра в /etc/ssh/sshd_config:

AuthorizedKeysFile /etc/%u/authorized_keys

Накрая рестартирах SSH услугата. За да тествам, излязох от моя VPS, след което се опитах да вляза отново. BOOM - работи! ??

Какви проблеми, свързани със удостоверяването на сървъра, сте срещали? Как ги решихте? Моля, споделете по-долу! ??