Почему были воссозданы файлы ssh-keygen в подкаталоге root?

Вопрос или проблема

На kubuntu 22.04 я переустановил ssh-keygen:

 sudo ssh-keygen
Генерация пары открытого/закрытого ключей rsa.
Введите файл для сохранения ключа (/root/.ssh/id_rsa):
Создан каталог '/root/.ssh'.
Введите пароль (оставьте пустым, если пароль не нужен):
Введите тот же пароль еще раз:
Ваши данные сохранены в /root/.ssh/id_rsa
Ваш открытый ключ сохранен в /root/.ssh/id_rsa.pub
Отпечаток ключа:
SHA256:Q40/XXXXXXXXXXXXXXXXX/XXXXXXX root@master-at-home
Случайное изображение ключа:
+---[RSA 3072]----+
|... ..           |
|oo.+o..  o       |
|.+.o=o+ = .      |
|  oo.o.= B       |
|   .. .oS B      |
|     o=.o. +     |
|    .E.+  o      |
|     .*+ . .     |
|    .o*B*o.      |

Но файлы были сгенерированы в /root/.ssh/id_rsa.pub, а не в /home/master/.ssh, где master — текущий пользователь.

Не уверен, могу ли я переместить файлы вручную или изменить свою команду в консоли?

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:

master@master-at-home:/mnt/_work_sdb8/wwwroot/lar/CurrenciesXM$ ls -la ~/.ssh
всего 24
drwxr-xr-x  2 root   root   4096 жов 21 16:17 .
drwxr-x--- 31 master master 4096 жов 21 16:51 ..
-rwxr-xr-x  1 root   root   2610 жов 29  2021 id_rsa
-rwxr-xr-x  1 root   root    574 жов 29  2021 id_rsa.pub
-rwxr-xr-x  1 root   root   3556 жов 21 16:17 known_hosts
-rwxr-xr-x  1 root   root   3998 лис 22  2023 known_hosts.old
master@master-at-home:/mnt/_work_sdb8/wwwroot/lar/CurrenciesXM$ id
uid=1000(master) gid=1000(master) groups=1000(master),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),122(lpadmin),133(lxd),134(sambashare)
master@master-at-home:/mnt/_work_sdb8/wwwroot/lar/CurrenciesXM$ sudo -s
[sudo] пароль для master: 
root@master-at-home:/mnt/_work_sdb8/wwwroot/lar/CurrenciesXM# id
uid=0(root) gid=0(root) groups=0(root),137(docker)

Команду ssh-keygen следует выполнять как обычному пользователю, а не с правами root.

Владелец и группа каталога .ssh и файлов в этом каталоге — root:root. Должно быть master:master. Поэтому вы получите ошибки, когда будете выполнять ssh-keygen как обычный пользователь.

Кроме того, у файлов установлены исполняемые биты, что бесполезно. Самая критическая точка заключается в том, что файл закрытого ключа id_rsa доступен для чтения всеми.

Вероятно, вы сделали что-то неправильно в прошлом.

Я предлагаю следующие команды для исправления прав собственности и разрешений:

sudo chown -R master:master ~/.ssh
chmod -R o-rwx ~/.ssh
chmod -R og-w ~/.ssh
chmod og-r ~/.ssh/id_rsa
chmod a-x ~/.ssh/*

Пояснение:

  • изменение владельца (это требует sudo, последующие команды можно выполнять под master.)
  • удалить все права доступа для других
  • удалить права на запись для группы (необязательно в данном случае)
  • удалить права на чтение для группы и других от закрытого ключа
  • удалить исполняемые биты у всех файлов

Если были другие файлы закрытого ключа (id_* без .pub), права для них должны быть такими же, как для id_rsa.

Ответ или решение

Вопрос о том, почему файлы SSH-ключей были созданы в подкаталоге root, а не в домашнем каталоге обычного пользователя, требует детального разбора и понимания как работы утилиты ssh-keygen, так и управления правами доступа в Linux-системах.

1. Понимание контекста

Пользователь на Kubuntu 22.04 выполнил команду sudo ssh-keygen, что является ключевым моментом. Использование sudo запускает команду от имени суперпользователя (root), и, соответственно, все создаваемые файлы будут принадлежать пользователю root. Следовательно, ключи были созданы в директории /root/.ssh/, что видно из вывода команды:

Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.

2. Почему это неправильно?

Создание SSH-ключей от имени root может привести к нескольким проблемам:

  • Проблема с доступом: Когда вы пытаетесь выполнить SSH-соединения под обычным пользователем (master), он не сможет получить доступ к файлам ключей, поскольку они находятся в директории, защищенной правами доступа root. Это создает трудности, когда надо использовать ключи для аутентификации.

  • Безопасность: Один из главных аспектов безопасности заключается в том, что приватные ключи не должны быть доступны другим пользователям. Если ключи находятся в директории root, это подразумевает, что только суперпользователь может с ними работать. На практике это может привести к большому количеству потенциальных проблем с доступом и управлением.

3. Как исправить ситуацию?

Исправить возникшую проблему можно несколькими командами, чтобы изменить права на файлы и их владельца на правильные для пользователя master:

Прежде всего, необходимо изменить владельца .ssh:

sudo chown -R master:master ~/.ssh

Затем стоит настроить правильные разрешения для файлов:

chmod -R o-rwx ~/.ssh        # Убрать права на чтение, запись и выполнение для других
chmod -R og-w ~/.ssh         # Убрать права на запись для группы и других
chmod og-r ~/.ssh/id_rsa     # Убрать права на чтение для группы и других у приватного ключа
chmod a-x ~/.ssh/*           # Убрать разрешения на выполнение для всех файлов

Эта последовательность команд обеспечит:

  • Изменение владельца: Файлы и папка теперь будут принадлежать пользователю master, что позволит ему управлять ключами.
  • Безопасность: Установленные ограничения гарантируют, что только пользователь master имеет доступ к приватному ключу, что значительно улучшает безопасность.

4. Рекомендации по использованию ssh-keygen

Для избегания подобных ситуаций в будущем рекомендуется всегда запускать ssh-keygen как обычный пользователь, без использования sudo:

ssh-keygen

Это особенно важно, если вы не хотите иметь дела с проблемами прав доступа в будущем. Убедитесь, что вы работаете в своей домашней директории, чтобы гарантировать, что файлы ключей будут созданы корректно.

Заключение

Понимание управления доступом и ролями пользователей в Linux — критически важное условие для безопасной и эффективной работы с SSH. Это позволяет избежать множества проблем, связанных с доступом и безопасностью. Убедитесь, что вы всегда работаете с ключами и утилитами от имени обычных пользователей, чтобы сохранить контроль и безопасность ваших данных.

Оцените материал
Добавить комментарий

Капча загружается...