CH-J Server Managerуправление на сървъри над SSH
Меню
Всички ръководства и статии →

Потребители на SSH и достъп като root: безопасна настройка в Linux

Създайте администраторски акаунт, добавете ключа му, тествайте sudo и едва тогава ограничете входа като root, без да изгубите достъп.

Цел и последователност на стъпките

Администраторите трябва да влизат със собствени акаунти чрез ключове и да използват 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 модулът е само за четене.

Подробна документация

OpenSSH: sshd_config →

man: sudoers →

Биометрични отключване и сигурност →