前言在使用 VSCode Remote-SSH 连接 FNOS 时可能会遇到普通 SSH 可以登录但 VSCode 一直连接失败、卡在安装 VSCode Server、无法创建远程目录等问题。这类问题的一个常见原因是FNOS 用户没有标准的、可写的用户目录。VSCode Remote-SSH 在连接远程主机时会在远程用户的家目录下创建~/.vscode-server如果用户没有正确的$HOME目录或者该目录不可写VSCode Server 就无法正常安装从而导致 Remote-SSH 连接失败。本文记录一种在 FNOS 上修复用户目录并为 VSCode Remote-SSH 准备运行环境的方法。一、本文示例环境说明为了方便说明本文使用以下示例信息FNOS 用户名Dragon FNOS 主机名DragonNas 用户组Users 目标用户目录/vol2/1000/home/Dragon实际操作时请根据自己的环境替换。如果你的 FNOS 用户名不是Dragon请将文中的Dragon替换成你自己的 FNOS 用户名。例如你的用户名是admin则把/vol2/1000/home/Dragon改成/vol2/1000/home/admin如果你的 FNOS 主机名不是DragonNas请将文中的DragonNas替换成你自己的 FNOS 主机名或 FNOS 的局域网 IP。例如192.168.1.100如果你的数据盘路径不是/vol2/1000请将文中的/vol2/1000替换成你自己的 FNOS 数据盘路径。可以使用下面命令查看常见挂载路径df-h二、问题现象在 FNOS 上使用某个用户登录 SSH 后发现用户目录存在异常。执行getentpasswdDragon其中Dragon需要替换成你自己的 FNOS 用户名。示例输出Dragon:x:1000:1001::/home/Dragon:/bin/bash可以看到该用户的家目录被设置为/home/Dragon但是在某些 FNOS 环境中这个目录可能不存在或者当前用户无法正常写入。当 VSCode Remote-SSH 尝试连接时它需要在远程用户目录下创建~/.vscode-server如果用户目录不存在或不可写就会导致连接失败。三、确认用户和用户组信息首先查看当前用户的 UID、GID 和所属用户组。命令格式id你的用户名示例idDragon示例输出uid1000(Dragon) gid1001(Users) groups1001(Users),1000(Administrators)从输出中可以看到用户名Dragon 主用户组Users这里需要特别注意很多 NAS 系统不会给用户创建同名用户组。也就是说虽然用户名是Dragon但用户组不一定也是Dragon如果直接执行sudochown-RDragon:Dragon /home/Dragon可能会出现chown: invalid group: ‘Dragon:Dragon’这是因为系统里没有名为Dragon的用户组。正确做法是根据id 用户名的输出找到用户的主用户组。例如这里的主用户组是Users那么后续就应该使用Dragon:Users如果你的用户名是admin主用户组是Users则应该使用admin:Users如果你的主用户组不是Users请替换成你自己系统中实际显示的用户组名称。四、选择新的用户目录位置对于 FNOS 这类 NAS 系统建议把用户目录放到数据盘而不是系统分区。本文示例目标用户目录为/vol2/1000/home/Dragon其中/vol2/1000是数据盘路径需要根据自己的 FNOS 实际情况修改。Dragon是用户名需要替换成你自己的 FNOS 用户名。如果你的用户名是admin并且数据盘路径也是/vol2/1000那么目标用户目录可以写成/vol2/1000/home/admin如果你的数据盘路径是/vol1/1000用户名是admin那么目标用户目录可以写成/vol1/1000/home/admin可以通过下面命令查看自己的磁盘挂载路径df-h五、创建新的用户目录命令格式如下sudomkdir-p/你的数据盘路径/home/你的用户名sudochown-R你的用户名:你的用户组 /你的数据盘路径/home/你的用户名sudochmod755/你的数据盘路径/home/你的用户名本文示例命令sudomkdir-p/vol2/1000/home/Dragonsudochown-RDragon:Users /vol2/1000/home/Dragonsudochmod755/vol2/1000/home/Dragon请根据自己的环境替换Dragon - 你的 FNOS 用户名 Users - 你的用户主组 /vol2/1000 - 你的数据盘路径例如你的用户名是admin用户组是Users数据盘路径是/vol1/1000则命令应改为sudomkdir-p/vol1/1000/home/adminsudochown-Radmin:Users /vol1/1000/home/adminsudochmod755/vol1/1000/home/admin然后检查目录权限ls-ld/vol2/1000/home/Dragon同样需要把路径替换成你自己的目标用户目录。示例输出drwxr-xr-x 2 Dragon Users 4096 Jun 10 16:39 /vol2/1000/home/Dragon这里需要重点确认两点Dragon Users表示目录所有者和用户组正确。drwxr-xr-x表示目录具备基本访问权限。六、尝试修改用户 HOME 目录一般情况下可以直接使用usermod修改用户目录。命令格式sudousermod-d/你的数据盘路径/home/你的用户名-s/bin/bash 你的用户名本文示例sudousermod-d/vol2/1000/home/Dragon-s/bin/bash Dragon请将其中的/vol2/1000/home/Dragon替换成你的目标用户目录。将Dragon替换成你的 FNOS 用户名。例如sudousermod-d/vol1/1000/home/admin-s/bin/bash admin如果执行成功可以直接跳到第九部分检查结果。但是如果当前用户正在运行进程可能会出现如下错误usermod: user Dragon is currently used by process 108973这表示该用户当前还有进程正在运行系统暂时不允许通过usermod修改用户信息。七、查看当前用户正在运行的进程切换到 rootsudo-i查看指定用户正在运行的进程。命令格式pgrep-u你的用户名-a本文示例pgrep-uDragon-a示例输出3961 /usr/local/bin/gitea web 108973 /lib/systemd/systemd --user 108974 (sd-pam) 108994 sshd: Dragonpts/0,pts/1 108995 -bash 108997 /usr/lib/openssh/sftp-server 108998 -bash 109033 top如果这个用户下不仅有当前 SSH 会话还有其他服务进程例如/usr/local/bin/gitea web就不建议直接执行pkill-u用户名因为这样会结束该用户下的所有进程可能会影响正在运行的服务。更稳妥的方式是手动修改/etc/passwd中的用户目录。八、使用 vipw 安全修改 /etc/passwd推荐使用vipw修改用户信息。在 root 用户下执行vipw找到类似这一行Dragon:x:1000:1001::/home/Dragon:/bin/bash这里的Dragon是示例用户名。将其中的用户目录部分从/home/Dragon修改为你的新用户目录。本文示例修改为/vol2/1000/home/Dragon修改后的完整行类似Dragon:x:1000:1001::/vol2/1000/home/Dragon:/bin/bash如果你的用户名是admin目标目录是/vol1/1000/home/admin则应类似admin:x:1000:1001::/vol1/1000/home/admin:/bin/bash保存并退出。vipw会对/etc/passwd进行安全编辑避免多个进程同时修改用户数据库。九、如果没有 vipw可以手动编辑 /etc/passwd如果系统中没有vipw也可以使用nano手动修改。建议先备份cp/etc/passwd /etc/passwd.bak然后编辑nano/etc/passwd找到当前用户对应的一行。示例Dragon:x:1000:1001::/home/Dragon:/bin/bash把原来的家目录/home/Dragon改成新的目标目录。示例Dragon:x:1000:1001::/vol2/1000/home/Dragon:/bin/bash保存退出。注意只修改这一行中的家目录字段不要随意修改 UID、GID、用户名和 shell 字段。十、确认修改是否成功执行getentpasswdDragon其中Dragon替换成你自己的用户名。如果输出类似Dragon:x:1000:1001::/vol2/1000/home/Dragon:/bin/bash说明用户目录已经成功修改。重点确认这一段已经变成你的新用户目录/vol2/1000/home/Dragon十一、重新登录 SSH退出 rootexit再退出当前 SSH 会话exit然后重新连接 FNOS。如果使用主机名sshDragonDragonNas如果使用 IPsshDragon192.168.1.100请将Dragon替换成你的 FNOS 用户名。将DragonNas替换成你的 FNOS 主机名。将192.168.1.100替换成你的 FNOS 局域网 IP。十二、检查新的 HOME 是否生效重新登录后执行whoamiecho$HOMEpwd理想输出类似Dragon /vol2/1000/home/Dragon /vol2/1000/home/Dragon如果你的用户名是admin目标目录是/vol1/1000/home/admin则理想输出应类似admin /vol1/1000/home/admin /vol1/1000/home/admin只要echo $HOME显示为你设置的新用户目录就说明新的 HOME 已经生效。十三、测试 VSCode Server 目录是否可创建VSCode Remote-SSH 会在远程用户目录下创建.vscode-server因此需要手动测试mkdir-p~/.vscode-serverls-ld~/.vscode-server如果没有报错并且输出路径位于你的新用户目录下例如/vol2/1000/home/Dragon/.vscode-server说明当前用户已经可以正常写入 VSCode Server 所需目录。这一步非常关键。只要下面命令可以正常执行mkdir-p~/.vscode-server且没有权限错误VSCode Remote-SSH 的远程目录问题基本就解决了。十四、Windows 端 SSH 配置建议在 Windows 上打开 SSH 配置文件C:\Users\你的Windows用户名\.ssh\config添加 FNOS 主机配置。模板如下Host 自定义连接名 HostName 你的FNOS_IP或主机名 User 你的FNOS用户名 Port 22 ServerAliveInterval 30 ServerAliveCountMax 3示例Host DragonNas HostName 192.168.1.100 User Dragon Port 22 ServerAliveInterval 30 ServerAliveCountMax 3其中Host DragonNas是你在 VSCode 里看到的连接名称可以自定义。HostName 192.168.1.100需要改成你的 FNOS IP 或主机名。User Dragon需要改成你的 FNOS 用户名。配置完成后在 VSCode 中执行Remote-SSH: Connect to Host...然后选择你刚才配置的连接名。十五、VSCode Remote-SSH 设置建议如果之前连接失败过可以在 VSCode 的settings.json中添加以下配置{remote.SSH.useLocalServer:false,remote.SSH.remotePlatform:{DragonNas:linux},remote.SSH.serverInstallPath:{DragonNas:/vol2/1000/home/Dragon/.vscode-server}}这段配置中有两个地方需要改成你自己的内容。第一处是连接名DragonNas:linux这里的DragonNas要和你 SSH config 里的Host名称保持一致。例如你的 SSH config 是Host fnos那么这里就应该写成remote.SSH.remotePlatform:{fnos:linux}第二处是 VSCode Server 安装路径DragonNas:/vol2/1000/home/Dragon/.vscode-server这里也要把DragonNas改成你的 SSH config 连接名把路径改成你的实际用户目录。例如{remote.SSH.useLocalServer:false,remote.SSH.remotePlatform:{fnos:linux},remote.SSH.serverInstallPath:{fnos:/vol1/1000/home/admin/.vscode-server}}配置说明remote.SSH.useLocalServer:false用于关闭本地服务模式减少 Windows 环境下的兼容问题。remote.SSH.remotePlatform:{fnos:linux}用于明确告诉 VSCode远程主机是 Linux 系统。remote.SSH.serverInstallPath:{fnos:/vol1/1000/home/admin/.vscode-server}用于指定 VSCode Server 安装目录避免它写入错误路径。十六、清理旧的 VSCode Server 目录如果之前连接失败过可以清理残留目录后重新连接rm-rf~/.vscode-serverrm-rf~/.vscode-remote然后重新在 VSCode 中连接 FNOS。如果你的$HOME已经正确指向新目录那么这里的~就会自动对应你的新用户目录。十七、完整命令汇总下面是本次操作中最关键的命令模板。查看用户信息id你的用户名 getentpasswd你的用户名创建新的用户目录sudomkdir-p/你的数据盘路径/home/你的用户名sudochown-R你的用户名:你的用户组 /你的数据盘路径/home/你的用户名sudochmod755/你的数据盘路径/home/你的用户名查看目录权限ls-ld/你的数据盘路径/home/你的用户名尝试使用usermod修改用户目录sudousermod-d/你的数据盘路径/home/你的用户名-s/bin/bash 你的用户名如果提示用户正在被进程使用切换 rootsudo-i查看该用户进程pgrep-u你的用户名-a使用vipw修改用户目录vipw将/etc/passwd中该用户的家目录字段从旧路径改成新路径。例如从Dragon:x:1000:1001::/home/Dragon:/bin/bash改为Dragon:x:1000:1001::/vol2/1000/home/Dragon:/bin/bash检查修改结果getentpasswd你的用户名重新登录后检查whoamiecho$HOMEpwdmkdir-p~/.vscode-serverls-ld~/.vscode-server十八、总结本次 VSCode Remote-SSH 连接 FNOS 失败的核心原因是远程用户没有正确、可写的 HOME 用户目录解决思路是确认 FNOS 用户名和用户组在 FNOS 数据盘创建新的用户目录将目录所有者设置为当前用户和对应用户组修改用户的 HOME 路径重新登录 SSH确认$HOME已经指向新目录测试.vscode-server是否可以创建重新使用 VSCode Remote-SSH 连接。对于 FNOS 这类 NAS 系统建议将用户目录放在数据盘路径下例如/vol2/1000/home/你的用户名这样既可以避免占用系统分区也能保证 VSCode Remote-SSH 有稳定的写入空间。最终只要下面命令能够成功执行mkdir-p~/.vscode-server并且没有权限错误VSCode Remote-SSH 基本就具备正常连接的条件了。
FNOS 使用 VSCode Remote-SSH 连接失败的解决方法:修复用户目录问题
前言在使用 VSCode Remote-SSH 连接 FNOS 时可能会遇到普通 SSH 可以登录但 VSCode 一直连接失败、卡在安装 VSCode Server、无法创建远程目录等问题。这类问题的一个常见原因是FNOS 用户没有标准的、可写的用户目录。VSCode Remote-SSH 在连接远程主机时会在远程用户的家目录下创建~/.vscode-server如果用户没有正确的$HOME目录或者该目录不可写VSCode Server 就无法正常安装从而导致 Remote-SSH 连接失败。本文记录一种在 FNOS 上修复用户目录并为 VSCode Remote-SSH 准备运行环境的方法。一、本文示例环境说明为了方便说明本文使用以下示例信息FNOS 用户名Dragon FNOS 主机名DragonNas 用户组Users 目标用户目录/vol2/1000/home/Dragon实际操作时请根据自己的环境替换。如果你的 FNOS 用户名不是Dragon请将文中的Dragon替换成你自己的 FNOS 用户名。例如你的用户名是admin则把/vol2/1000/home/Dragon改成/vol2/1000/home/admin如果你的 FNOS 主机名不是DragonNas请将文中的DragonNas替换成你自己的 FNOS 主机名或 FNOS 的局域网 IP。例如192.168.1.100如果你的数据盘路径不是/vol2/1000请将文中的/vol2/1000替换成你自己的 FNOS 数据盘路径。可以使用下面命令查看常见挂载路径df-h二、问题现象在 FNOS 上使用某个用户登录 SSH 后发现用户目录存在异常。执行getentpasswdDragon其中Dragon需要替换成你自己的 FNOS 用户名。示例输出Dragon:x:1000:1001::/home/Dragon:/bin/bash可以看到该用户的家目录被设置为/home/Dragon但是在某些 FNOS 环境中这个目录可能不存在或者当前用户无法正常写入。当 VSCode Remote-SSH 尝试连接时它需要在远程用户目录下创建~/.vscode-server如果用户目录不存在或不可写就会导致连接失败。三、确认用户和用户组信息首先查看当前用户的 UID、GID 和所属用户组。命令格式id你的用户名示例idDragon示例输出uid1000(Dragon) gid1001(Users) groups1001(Users),1000(Administrators)从输出中可以看到用户名Dragon 主用户组Users这里需要特别注意很多 NAS 系统不会给用户创建同名用户组。也就是说虽然用户名是Dragon但用户组不一定也是Dragon如果直接执行sudochown-RDragon:Dragon /home/Dragon可能会出现chown: invalid group: ‘Dragon:Dragon’这是因为系统里没有名为Dragon的用户组。正确做法是根据id 用户名的输出找到用户的主用户组。例如这里的主用户组是Users那么后续就应该使用Dragon:Users如果你的用户名是admin主用户组是Users则应该使用admin:Users如果你的主用户组不是Users请替换成你自己系统中实际显示的用户组名称。四、选择新的用户目录位置对于 FNOS 这类 NAS 系统建议把用户目录放到数据盘而不是系统分区。本文示例目标用户目录为/vol2/1000/home/Dragon其中/vol2/1000是数据盘路径需要根据自己的 FNOS 实际情况修改。Dragon是用户名需要替换成你自己的 FNOS 用户名。如果你的用户名是admin并且数据盘路径也是/vol2/1000那么目标用户目录可以写成/vol2/1000/home/admin如果你的数据盘路径是/vol1/1000用户名是admin那么目标用户目录可以写成/vol1/1000/home/admin可以通过下面命令查看自己的磁盘挂载路径df-h五、创建新的用户目录命令格式如下sudomkdir-p/你的数据盘路径/home/你的用户名sudochown-R你的用户名:你的用户组 /你的数据盘路径/home/你的用户名sudochmod755/你的数据盘路径/home/你的用户名本文示例命令sudomkdir-p/vol2/1000/home/Dragonsudochown-RDragon:Users /vol2/1000/home/Dragonsudochmod755/vol2/1000/home/Dragon请根据自己的环境替换Dragon - 你的 FNOS 用户名 Users - 你的用户主组 /vol2/1000 - 你的数据盘路径例如你的用户名是admin用户组是Users数据盘路径是/vol1/1000则命令应改为sudomkdir-p/vol1/1000/home/adminsudochown-Radmin:Users /vol1/1000/home/adminsudochmod755/vol1/1000/home/admin然后检查目录权限ls-ld/vol2/1000/home/Dragon同样需要把路径替换成你自己的目标用户目录。示例输出drwxr-xr-x 2 Dragon Users 4096 Jun 10 16:39 /vol2/1000/home/Dragon这里需要重点确认两点Dragon Users表示目录所有者和用户组正确。drwxr-xr-x表示目录具备基本访问权限。六、尝试修改用户 HOME 目录一般情况下可以直接使用usermod修改用户目录。命令格式sudousermod-d/你的数据盘路径/home/你的用户名-s/bin/bash 你的用户名本文示例sudousermod-d/vol2/1000/home/Dragon-s/bin/bash Dragon请将其中的/vol2/1000/home/Dragon替换成你的目标用户目录。将Dragon替换成你的 FNOS 用户名。例如sudousermod-d/vol1/1000/home/admin-s/bin/bash admin如果执行成功可以直接跳到第九部分检查结果。但是如果当前用户正在运行进程可能会出现如下错误usermod: user Dragon is currently used by process 108973这表示该用户当前还有进程正在运行系统暂时不允许通过usermod修改用户信息。七、查看当前用户正在运行的进程切换到 rootsudo-i查看指定用户正在运行的进程。命令格式pgrep-u你的用户名-a本文示例pgrep-uDragon-a示例输出3961 /usr/local/bin/gitea web 108973 /lib/systemd/systemd --user 108974 (sd-pam) 108994 sshd: Dragonpts/0,pts/1 108995 -bash 108997 /usr/lib/openssh/sftp-server 108998 -bash 109033 top如果这个用户下不仅有当前 SSH 会话还有其他服务进程例如/usr/local/bin/gitea web就不建议直接执行pkill-u用户名因为这样会结束该用户下的所有进程可能会影响正在运行的服务。更稳妥的方式是手动修改/etc/passwd中的用户目录。八、使用 vipw 安全修改 /etc/passwd推荐使用vipw修改用户信息。在 root 用户下执行vipw找到类似这一行Dragon:x:1000:1001::/home/Dragon:/bin/bash这里的Dragon是示例用户名。将其中的用户目录部分从/home/Dragon修改为你的新用户目录。本文示例修改为/vol2/1000/home/Dragon修改后的完整行类似Dragon:x:1000:1001::/vol2/1000/home/Dragon:/bin/bash如果你的用户名是admin目标目录是/vol1/1000/home/admin则应类似admin:x:1000:1001::/vol1/1000/home/admin:/bin/bash保存并退出。vipw会对/etc/passwd进行安全编辑避免多个进程同时修改用户数据库。九、如果没有 vipw可以手动编辑 /etc/passwd如果系统中没有vipw也可以使用nano手动修改。建议先备份cp/etc/passwd /etc/passwd.bak然后编辑nano/etc/passwd找到当前用户对应的一行。示例Dragon:x:1000:1001::/home/Dragon:/bin/bash把原来的家目录/home/Dragon改成新的目标目录。示例Dragon:x:1000:1001::/vol2/1000/home/Dragon:/bin/bash保存退出。注意只修改这一行中的家目录字段不要随意修改 UID、GID、用户名和 shell 字段。十、确认修改是否成功执行getentpasswdDragon其中Dragon替换成你自己的用户名。如果输出类似Dragon:x:1000:1001::/vol2/1000/home/Dragon:/bin/bash说明用户目录已经成功修改。重点确认这一段已经变成你的新用户目录/vol2/1000/home/Dragon十一、重新登录 SSH退出 rootexit再退出当前 SSH 会话exit然后重新连接 FNOS。如果使用主机名sshDragonDragonNas如果使用 IPsshDragon192.168.1.100请将Dragon替换成你的 FNOS 用户名。将DragonNas替换成你的 FNOS 主机名。将192.168.1.100替换成你的 FNOS 局域网 IP。十二、检查新的 HOME 是否生效重新登录后执行whoamiecho$HOMEpwd理想输出类似Dragon /vol2/1000/home/Dragon /vol2/1000/home/Dragon如果你的用户名是admin目标目录是/vol1/1000/home/admin则理想输出应类似admin /vol1/1000/home/admin /vol1/1000/home/admin只要echo $HOME显示为你设置的新用户目录就说明新的 HOME 已经生效。十三、测试 VSCode Server 目录是否可创建VSCode Remote-SSH 会在远程用户目录下创建.vscode-server因此需要手动测试mkdir-p~/.vscode-serverls-ld~/.vscode-server如果没有报错并且输出路径位于你的新用户目录下例如/vol2/1000/home/Dragon/.vscode-server说明当前用户已经可以正常写入 VSCode Server 所需目录。这一步非常关键。只要下面命令可以正常执行mkdir-p~/.vscode-server且没有权限错误VSCode Remote-SSH 的远程目录问题基本就解决了。十四、Windows 端 SSH 配置建议在 Windows 上打开 SSH 配置文件C:\Users\你的Windows用户名\.ssh\config添加 FNOS 主机配置。模板如下Host 自定义连接名 HostName 你的FNOS_IP或主机名 User 你的FNOS用户名 Port 22 ServerAliveInterval 30 ServerAliveCountMax 3示例Host DragonNas HostName 192.168.1.100 User Dragon Port 22 ServerAliveInterval 30 ServerAliveCountMax 3其中Host DragonNas是你在 VSCode 里看到的连接名称可以自定义。HostName 192.168.1.100需要改成你的 FNOS IP 或主机名。User Dragon需要改成你的 FNOS 用户名。配置完成后在 VSCode 中执行Remote-SSH: Connect to Host...然后选择你刚才配置的连接名。十五、VSCode Remote-SSH 设置建议如果之前连接失败过可以在 VSCode 的settings.json中添加以下配置{remote.SSH.useLocalServer:false,remote.SSH.remotePlatform:{DragonNas:linux},remote.SSH.serverInstallPath:{DragonNas:/vol2/1000/home/Dragon/.vscode-server}}这段配置中有两个地方需要改成你自己的内容。第一处是连接名DragonNas:linux这里的DragonNas要和你 SSH config 里的Host名称保持一致。例如你的 SSH config 是Host fnos那么这里就应该写成remote.SSH.remotePlatform:{fnos:linux}第二处是 VSCode Server 安装路径DragonNas:/vol2/1000/home/Dragon/.vscode-server这里也要把DragonNas改成你的 SSH config 连接名把路径改成你的实际用户目录。例如{remote.SSH.useLocalServer:false,remote.SSH.remotePlatform:{fnos:linux},remote.SSH.serverInstallPath:{fnos:/vol1/1000/home/admin/.vscode-server}}配置说明remote.SSH.useLocalServer:false用于关闭本地服务模式减少 Windows 环境下的兼容问题。remote.SSH.remotePlatform:{fnos:linux}用于明确告诉 VSCode远程主机是 Linux 系统。remote.SSH.serverInstallPath:{fnos:/vol1/1000/home/admin/.vscode-server}用于指定 VSCode Server 安装目录避免它写入错误路径。十六、清理旧的 VSCode Server 目录如果之前连接失败过可以清理残留目录后重新连接rm-rf~/.vscode-serverrm-rf~/.vscode-remote然后重新在 VSCode 中连接 FNOS。如果你的$HOME已经正确指向新目录那么这里的~就会自动对应你的新用户目录。十七、完整命令汇总下面是本次操作中最关键的命令模板。查看用户信息id你的用户名 getentpasswd你的用户名创建新的用户目录sudomkdir-p/你的数据盘路径/home/你的用户名sudochown-R你的用户名:你的用户组 /你的数据盘路径/home/你的用户名sudochmod755/你的数据盘路径/home/你的用户名查看目录权限ls-ld/你的数据盘路径/home/你的用户名尝试使用usermod修改用户目录sudousermod-d/你的数据盘路径/home/你的用户名-s/bin/bash 你的用户名如果提示用户正在被进程使用切换 rootsudo-i查看该用户进程pgrep-u你的用户名-a使用vipw修改用户目录vipw将/etc/passwd中该用户的家目录字段从旧路径改成新路径。例如从Dragon:x:1000:1001::/home/Dragon:/bin/bash改为Dragon:x:1000:1001::/vol2/1000/home/Dragon:/bin/bash检查修改结果getentpasswd你的用户名重新登录后检查whoamiecho$HOMEpwdmkdir-p~/.vscode-serverls-ld~/.vscode-server十八、总结本次 VSCode Remote-SSH 连接 FNOS 失败的核心原因是远程用户没有正确、可写的 HOME 用户目录解决思路是确认 FNOS 用户名和用户组在 FNOS 数据盘创建新的用户目录将目录所有者设置为当前用户和对应用户组修改用户的 HOME 路径重新登录 SSH确认$HOME已经指向新目录测试.vscode-server是否可以创建重新使用 VSCode Remote-SSH 连接。对于 FNOS 这类 NAS 系统建议将用户目录放在数据盘路径下例如/vol2/1000/home/你的用户名这样既可以避免占用系统分区也能保证 VSCode Remote-SSH 有稳定的写入空间。最终只要下面命令能够成功执行mkdir-p~/.vscode-server并且没有权限错误VSCode Remote-SSH 基本就具备正常连接的条件了。