При работе с SSH, особенно при попытке подключиться к удалённым серверам (например, инстансам AWS EC2), вы обычно используете файл закрытого ключа для безопасной аутентификации. Однако иногда вы можете столкнуться с ошибкой, связанной с разрешениями файла закрытого ключа. Эта ошибка часто выглядит следующим образом:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions for 'ec2-key.pem' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored.
Эта ошибка возникает из-за того, что права доступа к файлу закрытого ключа (ec2-key.pem) слишком открыты. SSH обеспечивает строгие права доступа, чтобы файлы закрытых ключей были доступны только их владельцу. Если файл ключа доступен другим пользователям системы, SSH откажется его использовать из соображений безопасности.
В этой статье мы расскажем, как решить эту проблему, настроив права доступа к файлам в Windows.
Шаги по исправлению ошибки “Незащищенный файл закрытого ключа” в Windows
Выполните следующие действия, чтобы исправить права доступа к файлам и устранить проблему:
Откройте PowerShell от имени администратора
- Нажмите Win + X и выберите Windows PowerShell (администратор)
- Кроме того, найдите «PowerShell» в меню «Пуск», щёлкните по нему правой кнопкой мыши и выберите «Запуск от имени администратора»
Перейдите в каталог, содержащий закрытый ключ
Вам нужно будет перейти к местоположению вашего закрытого ключа (ec2-key.pem). Выполните следующую команду в PowerShell, заменив путь на фактическое местоположение файла ключа:
cd C:/Users/iFran/Desktop
Удалить разрешения для других пользователей
Используйте следующие команды PowerShell, чтобы удалить унаследованные разрешения и ограничить доступ к файлу закрытого ключа, чтобы только ваша учётная запись могла получить к нему доступ:
icacls ec2-key.pem /inheritance:r icacls ec2-key.pem /remove "BUILTIN\Users" icacls ec2-key.pem /grant:r "%username%":F
Давайте разберем, что делают эти команды:
- icacls ec2-key.pem /inheritance:r: удаляет унаследованные разрешения из файла.
- icacls ec2-key.pem /remove “BUILTIN\Users”: удаляет доступ для группы “Users”, которая представляет всех пользователей вашей системы.
- icacls ec2-key.pem /grant:r “%username%”:F: предоставляет полный контроль над файлом только вашей учётной записи.
Проверьте разрешения
После выполнения команд убедитесь, что только ваша учётная запись имеет доступ к файлу, выполнив:
icacls ec2-key.pem
Вы должны увидеть вывод, подобный следующему:
ec2-key.pem: <your_username>:(F)
Это означает, что только ваш пользователь (<your_username>) имеет полный доступ ((F)) к файлу, что решает проблему безопасности.
Исправление прав доступа к файлам в Linux/macOS
Если вы столкнулись с той же проблемой в Linux или macOS, вы можете решить её, изменив разрешения с помощью одной команды:
chmod 600 ec2-key.pem
Эта команда гарантирует, что только владелец файла имеет права на чтение и запись файла закрытого ключа.
Заключение
Ошибка «UNPROTECTED PRIVATE KEY FILE» возникает, когда права доступа к файлу приватного ключа SSH слишком открыты и он доступен другим пользователям вашей системы. Следуя инструкциям, приведённым в этом руководстве, вы сможете ограничить права доступа к файлу и безопасно использовать приватный ключ с SSH.
Обеспечение безопасности файлов с закрытыми ключами имеет решающее значение для предотвращения несанкционированного доступа, и эти шаги помогают усилить защиту как в Windows, так и в Linux/macOS.
Выполнив эти действия, вы сможете устранить ошибку с разрешениями и продолжить безопасно использовать свой SSH-ключ. Не стесняйтесь делиться своими мыслями или задавать дополнительные вопросы в комментариях ниже!