Art*_*iak 35 ssh windows-10 windows-subsystem-for-linux
我有一个位于 的密钥文件,C:\private-key.pem并且在 Ubuntu 子系统上有一个指向它的软链接:~/.ssh/private-key.pem -> /mnt/c/private-key.pem.
当我尝试从 Ubuntu 子系统 ssh 进入某个远程机器时,我得到:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/home/artur/.ssh/private-key.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/home/artur/.ssh/private-key.pem": bad permissions
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
chmod 400上C:\和内使用密钥~/.ssh。我试图为我设置所有者并删除 Windows 上所有其他用户的 ACL 以获取此密钥文件,但每次我得到Permission denied或Permissions XXXX for '/home/artur/.ssh/private-key.pem' are too open.谁能帮我解释一下如何在 Windows 和 Ubuntu 子系统上配置密钥权限?
ana*_*and 32
在 Windows WSL 中适用于我的解决方案(不更改文件模式):
sudo ssh -i keyfile <user>@ip
Run Code Online (Sandbox Code Playgroud)
sim*_*ser 21
我在字里行间阅读,并假设您在 Windows 10 中使用 Linux 子系统。当您将 Windows 文件从 符号链接C:\到 中的 Linux 文件系统时$HOME/.ssh,实际文件的权限仍受 Windows 控制,并且在 Linux 窗口中显示的权限最能代表 Windows 权限;你不能在/mnt/cLinux 中更改 Windows 文件的权限。Microsoft 的这个 FAQ讨论了如何在两个重叠的文件系统中处理文件。
您需要更改权限的文件是符号链接指向的文件,因此这意味着文件 /mnt/c
似乎不可能只允许用户访问 Windows 文件。即使您禁用文件的权限继承并仅授予您自己的用户读取权限,Linux 权限仍显示为-r--r--r--,因此无法用于~/.ssh
唯一的选择似乎是将文件从 Windows 复制到 Linux,此时您可以使用chmod和chown。
小智 6
仅当 .pem 文件位于可在挂载点(例如 /mnt/c 中的某个位置)下访问的 Windows 文件系统中时,Windows 10 权限与 WSL 权限问题才会出现问题。
如果您将该文件移动到 WSL 主目录下,例如目录 /home/.ssh,那么您可以对该chmod 400 yourkeyfile.pem文件执行 a 操作。
WSL 的工作方式是,标准 Linux 根目录(如 bin 等、home、usr)对 Windows 10 不可见,因此您可以chmod对任何文件执行 a 操作,就像在真正的 Linux 系统上工作一样。
| 归档时间: |
|
| 查看次数: |
48744 次 |
| 最近记录: |