如何修复VS Code Remote-SSH切换用户连接时forkpty(3) failed报错
VS Code Remote-SSH 多用户终端启动故障解决方案
- 排查伪终端(pts)权限配置
forkpty(3) failed报错核心原因是用户无权限访问服务器/dev/pts伪终端设备,可通过如下步骤修复:- 以root或具备sudo权限的账号登录目标服务器,执行
mount | grep devpts检查挂载参数,确认返回结果包含gid=5(tty组默认gid)、mode=620 - 执行
groups username2查看用户所属用户组,若未包含tty组,执行usermod -aG tty username2将用户加入tty组,重启服务器生效
- 以root或具备sudo权限的账号登录目标服务器,执行
- 验证用户shell配置合法性
- 本地直接通过原生ssh命令连接username2:
ssh username2@host.website.com -i [你的密钥文件路径] - 若原生ssh也无法进入终端,检查/etc/passwd文件中username2对应的默认shell路径是否存在且具备可执行权限,常见错误为手动配置了不存在的自定义shell路径
- 本地直接通过原生ssh命令连接username2:
- 清理VS Code远程服务缓存
- 先关闭所有Remote-SSH连接,通过username1登录远程服务器后切换到username2:
su - username2 - 执行
rm -rf ~/.vscode-server删除对应账号下的VS Code远程缓存文件 - 重新用Remote-SSH连接username2,等待扩展自动重新部署后测试终端启动
- 先关闭所有Remote-SSH连接,通过username1登录远程服务器后切换到username2:
- 调整Remote-SSH启动参数
打开VS Code设置页面,搜索Remote SSH: Server Args,添加启动参数--disable-pty,保存设置后重启VS Code重新连接测试
内容的提问来源于stack exchange,提问作者Mission Mike
相关产品推荐
相关产品推荐

