"WARNING: UNPROTECTED PRIVATE KEY FILE!" - не получается войти в учётную записать VPS по ключам с локальной Windows-машины
Руководствуясь статьёй из авторитетного источника, изготовил пару ключей для входа на VPS и скопировал их (правда, в статье, не написано, как это делать в Windows, но я эту проблему решил).
Теперь, когда я пытаюсь зайти на VPS через SSH
ssh -i "C:\Users\Me\.ssh\MyWebApp.pub" [email protected]
я получаю предупреждение
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'C:\\Users\\Me\\.ssh\\MyWebApp.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "C:\\Users\\Me\\.ssh\\MyWebApp.pub": bad permissions
[email protected]'s password:
Уже на этом этапе возникает два вопроса:
- Ключ создан в папке пользователя (скажем, Me). Как это так он "доступен другим" (accessible by others)?
- В заголовке сказано, что незащищён приватный ключ, а .pub - это вроде как публичный.
Буду благодарен за объяснение этих моментов, а пока я приведу попытку решения проблемы.
На Stack Exchange я нагуглил PowerShell решение:
Icacls <file name> /Inheritance:r
Icacls <file name> /Grant:r "%Username%":"(R)"
Насколько я понял, его идея - запретить все взаимодействия с файлом для всех пользователей и затем разрешить чтение для текущего.
Во-первых, если попытаться ввести вторую команду, то будет ошибка, которой я посвятил отдельный вопрос. В общем, правильно будет так:
Icacls <file name> /Grant:r "$Username":"(R)"
По завершению операции PowerShell скажет, что всё завершилось удачно, но если попробовать зайти в учётную запись, будет то же самое предупреждение.
Пробовал повторить те же действия для приватного ключа - не помогло.
Также попрошу не рекомендовать мне в этом вопросе перейти на MacOS и Linux, так как данный вопрос сфокусирован именно Windows, да и по поисковым запросам сюда тоже будут приходить пользователи Windows.
Ответы (1 шт):
Вы должны не пытаться установить права для пользователя, а наоборот оставить права на эти файлы только этому пользователю, а у остальных пользователей прав на эти файлы быть не должно.
