Цел и последователност на стъпките
Администраторите трябва да влизат със собствени акаунти чрез ключове и да използват sudo при нужда. Така остава запис кой какво е направил и се ограничават опитите за отгатване на пароли. Редът е важен: първо осигурете новия достъп, тествайте го и ограничете root като последна стъпка. Дръжте конзолата на доставчика достъпна, ако нещо се обърка.
Създайте акаунта и добавете ключа
Създайте акаунта, добавете публичния му ключ и задайте строги права, защото sshd игнорира файлове с ключове, в които други могат да записват. Никога не копирайте частен ключ на сървъра. При системи от семейството Red Hat използвайте групата wheel вместо sudo.
sudo adduser admin1
sudo usermod -aG sudo admin1
sudo install -d -m 700 -o admin1 -g admin1 /home/admin1/.ssh
sudo install -m 600 -o admin1 -g admin1 ~/admin1.pub /home/admin1/.ssh/authorized_keysТествайте от втори прозорец
Оставете текущата сесия отворена и тествайте новия вход от друг терминал. Членството в група само по себе си не доказва, че sudo работи, защото това се определя от правилата в sudoers. Потвърдете с sudo -l.
ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519 admin1@server.example
sudo -l
sudo -vОграничете входа като root
PermitRootLogin prohibit-password допуска root само с ключ, а no блокира напълно достъпа на root през SSH. Запишете промяната в отделен файл в /etc/ssh/sshd_config.d. За повечето опции sshd използва първата намерена стойност, така че по-ранен файл може да има предимство. Затова проверете ефективната стойност с sshd -T, вместо само да четете файловете. Тествайте нов вход, преди да затворите старата сесия.
echo 'PermitRootLogin no' | sudo tee /etc/ssh/sshd_config.d/50-root.conf
sudo sshd -t
sudo systemctl reload ssh
sudo sshd -T | grep -iE '^(permitrootlogin|passwordauthentication) 'Вход с парола и какво да избягвате
Изключете PasswordAuthentication едва след като всеки необходим акаунт има тестван ключ. Избягвайте споделянето на един акаунт от няколко души, защото тогава не можете да отнемете достъпа на един, без да засегнете останалите. sudo без парола за целия акаунт също означава, че само откраднат ключ дава пълен контрол.
Акаунти в CH-J Server Manager
Модулът Users управлява акаунти, групи, SSH ключове и SSH достъп през активна SSH сесия. Той никога не променя sudoers и не задава NOPASSWD, а показва действителното състояние на sudo от sudo -l. Акаунтът root не може да бъде изтрит, а разрешаването на вход като root с парола изисква допълнително потвърждение, като препоръчителният избор е само с ключ. Промяна на SSH достъпа се проверява с sshd -T и нов SSH вход. Предишната конфигурация се възстановява автоматично, ако проверката се провали или бихте изгубили достъп. Без sudo модулът е само за четене.