iii*_*iii 51 ssh bash ubuntu windows-10 windows-subsystem-for-linux
我试图使用 ssh 实例,但收到以下错误,这很奇怪,因为我尝试使用 更改权限chmod
,但这似乎不起作用,因为权限仍然存在777
:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for 'privkey.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 "privkey.pem": bad permissions
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
我打开git bash
并能够毫无问题地通过 SSH 连接到我的实例,并且权限也不777
是很好。
小智 78
如果您在 Windows 文件系统中引用文件,默认情况下它们不会保留 Linux 权限。但是,有一种方法可以实现这一点。编辑或创建(使用sudo
)/etc/wsl.conf
并添加以下内容:
[automount]
options = "metadata"
Run Code Online (Sandbox Code Playgroud)
关闭所有 WSL 实例并重新启动一个实例,chmod
现在保留所有更改。
ero*_*rtc 21
私钥是否在您的 Windows 文件系统上(在 /mnt/ 下)?您无法在 Windows 上的 Ubuntu 上使用 Bash 上的 chmod 修改 Windows 文件系统上文件的权限。您必须将私钥复制到 WSL 主目录 (~) 并在那里执行。
这里的一些讨论:https : //github.com/Microsoft/WSL/issues/81
Bas*_*l A 20
正确的处理方法:
/etc/wsl.conf
使用以下内容创建:
[automount]
enabled = true
root = /mnt/
options = "metadata,umask=22,fmask=11"
Run Code Online (Sandbox Code Playgroud)
要理解上面每个参数的含义,请参考MSDN上的这篇文章
关闭所有 WSL 终端并打开一个新终端
重新启动您的机器(如一些评论所示)
现在你已经准备好了;更改 Windows 中文件的权限/mnt/c/
将在启动时通过该metadata
选项在 WSL 中正确反映和挂载。
我创建了一个别名,该别名会加载到我的~/.bashrc
文件中,并允许使用“元数据”权限卸载/重新安装文件夹中的C:/
驱动器/mnt/c/
。
alias win-chmod="cd ~ && sudo umount /mnt/c && sudo mount -t drvfs C: /mnt/c -o metadata && cd -"
Run Code Online (Sandbox Code Playgroud)
这允许我仅chmod
在需要时启用,防止对挂载的文件系统进行不必要的更改。这只是调用的问题
alias win-chmod="cd ~ && sudo umount /mnt/c && sudo mount -t drvfs C: /mnt/c -o metadata && cd -"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
71759 次 |
最近记录: |