WSL下使用SSH权限问题
前言
Linux 使用过程中遇到最多的坑就是权限设置错误,而 WSL (Windows Subsystem for Linux) 作为一个 Linux 环境也不例外。
错误日志
1 | Bad owner or permissions on /home/p3terx/.ssh/config |
1 | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
分析问题
问题起因是我直接复制了 Windows 下 Git Bash 所使用的 SSH 配置文件,并修改了配置文件中私钥文件路径为 DrvFs 中的路径。而 DrvFs 文件系统权限问题会导致这两个文件的权限为 777。
解决方案
Linux 中的 SSH 配置文件的正确权限是 600,SSH 私钥的正确权限是 400,所有者必须是当前用户。
由于 WSL 通过 DrvFs 无法真正的设置文件权限,所以必须将私钥文件复制到 WSL 中的 ~/.ssh 目录中,然后再设置权限:
1 | chmod 400 ~/.ssh/id_rsa |
设置 SSH 配置文件权限:
1 | chmod 600 ~/.ssh/config |
设置文件所有者:
1 | chown $USER ~/.ssh/. |
参考资料
ssh returns “Bad owner or permissions on ~/.ssh/config”
ssh “permissions are too open” error
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 3mile的博客!
评论