Канон Шредингера (31 янв 2026)

Фантастический рассказ. О тульпах, людях и богах.

Как настроить доступ на VDS под обычным пользователем

Больше
2 нед. 6 дн. назад - 2 нед. 6 дн. назад #1 от dinos
Пример конфигурирования VDS (centos), сделал из него веб-сервер, на котором крутятся несколько сайтов. Захожу по ssh, используя сертификат (настроено), но под рутом. Опишу как сделал так, чтобы под этим сертификатом заходить под обычным юзером (директория cloud-user там уже есть), а требующие административных привилегий действия делались из под sudo.

Code:
cat /etc/passwd | awk -F: '$3 >= 1000 {print $1}' nobody cloud-user ls /home cloud-user


т.е., cloud-user уже есть.

Code:
id cloud-user ls -ld /home/cloud-user mkdir -p /home/cloud-user/.ssh chmod 700 /home/cloud-user/.ssh chown cloud-user:cloud-user /home/cloud-user/.ssh cp /root/.ssh/authorized_keys /home/cloud-user/.ssh/authorized_keys chmod 600 /home/cloud-user/.ssh/authorized_keys chown cloud-user:cloud-user /home/cloud-user/.ssh/authorized_keys whoami pwd usermod -aG wheel cloud-user


Меняем в /etc/ssh/sshd_config:
Code:
# PermitRootLogin prohibit-password

на
Code:
PermitRootLogin no

Если
Code:
sudo sshd -T | grep permitrootlogin

показывает, в числе прочего,
Code:
permitrootlogin yes

, находим этот файл в /etc/ssh, его в большинстве случаев надо удалить без лишних вопросов, там всего одна эта запись, "permitrootlogin yes":

Code:
sudo grep -R "PermitRootLogin" /etc/ssh sudo systemctl restart sshd


Пробуем зайти под рутом (приходит отлуп), пробуем зайти под cloud-user (все получилось).



 
Последнее редактирование: 2 нед. 6 дн. назад пользователем p.rishard. Причина: Исправлен синтаксис

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Dev banner 2
Больше
2 нед. 6 дн. назад #2 от p.rishard
Молодец. Сам дошел или AI подсказал?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
2 нед. 6 дн. назад #3 от dinos
Да сам практически. Сертификат то я сам устанавливал.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
2 нед. 4 дн. назад #4 от evgenij
1. Поиск обычных пользователей в системе.
Code:
cat /etc/passwd | awk -F: '$3 >= 1000 {print $1}'

Команда выводит имена пользователей, под которыми потенциально можно заходить по SSH.

2. Проверка домашних директорий.
Code:
ls /home

Показывает список домашних каталогов пользователей.

3. Проверка групп и идентификаторов пользователя.
Code:
groups cloud-user

Выводит UID, GID и все группы пользователя.

4. Проверка прав на домашний каталог.
Code:
ls -ld /home/cloud-user

Критично для SSH: если каталог принадлежит не пользователю или имеет слишком открытые права, SSH может отказать во входе.

5. Создание SSH-директории.
Code:
mkdir -p /home/cloud-user/.ssh

Создаёт каталог .ssh в домашней директории пользователя.
Code:
chmod 700 /home/cloud-user/.ssh

Права: владелец: чтение / запись / вход, все остальные: никакого доступа. Это обязательное требование SSH.
Code:
chown cloud-user:cloud-user /home/cloud-user/.ssh

Делает пользователя cloud-user владельцем каталога. Без этого SSH не будет доверять ключам.

6. Копирование SSH-ключей.
Вариант 1 (перезапись файла):
Code:
cp /root/.ssh/authorized_keys /home/cloud-user/.ssh/authorized_keys

Вариант 2 (добавление ключей):
Code:
cat /root/.ssh/authorized_keys >> /home/cloud-user/.ssh/authorized_keys

7. Проверка содержимого ключей.
Code:
wc -l /home/cloud-user/.ssh/authorized_keys

Показывает количество строк (ключей). Удобно для проверки: ключи реально добавились.
Code:
head -n 1 /home/cloud-user/.ssh/authorized_keys

Показывает первый ключ.

8. Корректировка владельца и прав.
Code:
chown cloud-user:cloud-user /home/cloud-user/.ssh/authorized_keys

Назначает владельца файла.

Критично: SSH игнорирует файл, если владелец неправильный.
Code:
chmod 600 /home/cloud-user/.ssh/authorized_keys

Права: владелец: чтение / запись, все остальные: нет доступа. Строгое требование OpenSSH.

chmod 700 /home/cloud-user/.ssh

Повторная фиксация прав (на случай, если что-то изменилось).

9. Проверка SELinux (если включён).
Code:
ls -Z /home/cloud-user/.ssh/authorized_keys

Показывает SELinux-контекст файла.

Если контекст неправильный (не ssh_home_t), SSH может не пускать, даже при правильных правах.

10. Финальная проверка прав.
Code:
ls -ld /home/cloud-user ls -ld /home/cloud-user/.ssh ls -l  /home/cloud-user/.ssh/authorized_keys

Комплексная проверка.

11. Выдача sudo-доступа.
Code:
usermod -aG wheel cloud-user

Добавляет пользователя cloud-user в группу wheel.

На RHEL / CentOS / Alma / Rocky: группа wheel обычно имеет право на sudo.

После этого пользователь может выполнять команды от root (через sudo), если это разрешено в /etc/sudoers.

Важно: изменение вступает в силу только после нового входа в систему.

Have a lot of fun!
Спасибо сказали: serge

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
2 нед. 4 дн. назад #5 от serge

Молодец. Сам дошел или AI подсказал?
Уже как бы и неважно.

А я смогу! - А поглядим! - А я упрямый!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Работает на Kunena форум