无法通过VS Code远程资源管理器SSH连接只读Linux服务器
解决VS Code Remote SSH连接只读权限用户失败的问题
问题分析
当使用只读权限用户通过VS Code Remote SSH连接远程Linux服务器时,VS Code会尝试在用户主目录下的.vscode-server目录创建子目录存储服务端文件,但由于目录只读导致创建失败,报错关键信息:
mkdir: cannot create directory ‘/home/airbyte/.vscode-server/bin/2cyd690cbff1569’
Creating the server install dir failed...
: Read-only file system
以下是几种可行的解决方法:
方法1:指定自定义VS Code Server存储目录
通过设置远程环境变量,让VS Code将服务端文件存储到你拥有读写权限的目录(如/tmp):
- 打开本地
~/.ssh/config文件,找到对应服务器的配置块,添加SetRemoteEnv指令:Host your-server-alias HostName your-server-ip User airbyte SetRemoteEnv VSCODE_SERVER_DATA_DIR=/tmp/vscode-server-${USER} - 保存配置后,重新发起VS Code Remote SSH连接,系统会自动在指定目录创建所需文件。
方法2:手动部署VS Code Server到可写目录
如果需要更灵活的控制,可以手动将VS Code Server部署到可写目录:
- 在本地VS Code的「帮助」→「关于」中,复制当前VS Code的版本哈希值(即报错信息中的
2cyd690cbff1569)。 - 下载对应版本的服务端包:
wget https://update.code.visualstudio.com/commit:2cyd690cbff1569/linux-x64/stable -O vscode-server-linux-x64.tar.gz - 将包上传到远程服务器的可写目录:
scp vscode-server-linux-x64.tar.gz airbyte@your-server-ip:/tmp/ - 远程登录服务器,解压包到指定路径:
ssh airbyte@your-server-ip mkdir -p /tmp/vscode-server/bin/2cyd690cbff1569 tar -xzf /tmp/vscode-server-linux-x64.tar.gz -C /tmp/vscode-server/bin/2cyd690cbff1569 --strip-components=1 - 在本地
~/.ssh/config中添加环境变量指定服务端路径:Host your-server-alias HostName your-server-ip User airbyte SetRemoteEnv VSCODE_SERVER_DATA_DIR=/tmp/vscode-server - 重新启动VS Code并连接远程服务器。
方法3:请求管理员调整权限
若上述方法无法生效,可联系服务器管理员:
- 请求将
/home/airbyte/.vscode-server目录的写入权限赋予你的用户; - 或让管理员提前为你部署对应版本的VS Code Server到该目录。
内容的提问来源于stack exchange,提问作者Thomas L.
相关产品推荐
相关产品推荐

