You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode SSH Remote通过AWS SSM连接ARM64架构Ubuntu 20.04 EC2实例时zsh Shell集成激活失败的解决问询

解决VSCode Remote SSH zsh Shell集成激活失败的问题

我之前在多人共享的AWS EC2实例上碰到过一模一样的问题,根源就是/tmp/vscode-zsh/目录下的配置文件被其他用户创建,导致当前用户没有权限修改或覆盖这些文件,进而触发Shell集成激活失败。下面是几个亲测有效的解决办法:

1. 清理冲突的临时目录(最快解决)

直接删除整个/tmp/vscode-zsh/目录——这个是VSCode自动生成的临时目录,删掉不会影响系统运行,下次启动VSCode会重新为当前用户创建专属的目录和文件:

sudo rm -rf /tmp/vscode-zsh/

执行完后,重启VSCode的远程连接会话,再打开zsh终端应该就能正常激活Shell集成了。

2. 手动创建专属临时目录(无sudo权限时适用)

如果你没有sudo权限,或者不想用sudo操作,可以手动创建属于当前用户的临时目录并设置严格权限:

# 先删除已存在的冲突目录(如果有的话)
if [ -d /tmp/vscode-zsh/ ]; then
  rm -rf /tmp/vscode-zsh/
fi
# 创建新目录并设置所有权和权限
mkdir -p /tmp/vscode-zsh/
chown $USER:$USER /tmp/vscode-zsh/
chmod 700 /tmp/vscode-zsh/

这样设置后,只有当前用户能读写这个目录,VSCode后续生成zsh配置文件时就不会碰到权限问题了。

3. 更改VSCode Shell集成的临时目录(长期预防)

如果你的EC2实例是多人共享的,经常出现这类权限冲突,可以修改VSCode的设置,让Shell集成使用用户个人目录下的临时文件夹,彻底避免和其他用户的冲突:

  • 打开VSCode设置(快捷键Ctrl+,)
  • 在搜索框输入terminal.integrated.shellIntegration.tempDir
  • 将设置值改为${env:HOME}/.vscode-zsh-tmp(或者其他你个人目录下的路径)
  • 保存设置后,关闭并重新连接远程会话,VSCode会自动在你指定的目录下创建专属的临时文件

验证解决效果

完成上述操作后,打开新的zsh终端,检查是否还会弹出"Shell integration failed to activate"的提示,同时查看VSCode的窗口日志,确认没有再出现EPERM: operation not permitted的权限错误。

内容的提问来源于stack exchange,提问作者DasBoot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 17:22:39