下列的这篇权威文章,我在 Windows 本地 PC 上创建了 SSH 密钥并将其复制到 VPS(本文不涉及 Windows 情况,但我找到了合适的解决方案)。
现在,当我尝试通过 SSH 登录 VPS 时:
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:
在这个阶段,我已经至少有 2 个问题:
- 该密钥已在特定用户的目录中创建(例如,我)如果是,那么“其他人可访问”是什么意思?
- 有人告诉私人的密钥不受保护,而.pub指的是公共的。
请解释这些时刻以解释这个主题。仍然不明白上述时刻,我谷歌搜索此解决方案:
Icacls <file name> /Inheritance:r
Icacls <file name> /Grant:r "%Username%":"(R)"
据我理解,该概念是拒绝所有用户与此密钥的所有交互,并且仅向当前用户授予权限。
第二条命令将导致其他错误;正确的语法是:
Icacls <file name> /Grant:r "$Username":"(R)"
尽管 PowerShell 会报告成功完成,但如果尝试再次登录,仍然会出现“未受保护的私钥文件!”警告。
VPS中Ubuntu的版本是20.04。