VSCode SSH Remote connected to AWS EC2 instance running Ubuntu 20.04 (ARM64)
I'm connecting to the instance using AWS SSM through the Remote SSH extension (see more detail about how here:
Meanwhile, I can easily create a bash based terminal and write $ zsh
afterwards:
The is the output generated in the Log (Window)
Output pane of VSCode:
[2022-08-09 19:22:35.667] [renderer1] [error] EPERM: operation not permitted, copyfile
'/data/home/pens/.vscode-server/bin/da76f93349a72022ca4670c1b84860304616aaa2/out/vs/workbench/contrib/terminal/browser/media/shellIntegration-rc.zsh'
-> '/tmp/vscode-zsh/.zshrc':
Error: EPERM: operation not permitted, copyfile
'/data/home/pens/.vscode-server/bin/da76f93349a72022ca4670c1b84860304616aaa2/out/vs/workbench/contrib/terminal/browser/media/shellIntegration-rc.zsh'
-> '/tmp/vscode-zsh/.zshrc'
It prints a similar error for the following dot-files files: .zcompdump, .zlogin, .zprofile, .zshenv, .zshrc
Ultimately this means that the issue is related to access to the files in the directory: /tmp/vscode-zsh/
VSCode tries to create the 5 dot-files in the same folder with the same naming for the current user whenever it tries to launch a shell integrated zsh terminal. This results in permission denied / operation not permitted
if the files have already been created for - and are owned by - another user.. Any ideas how to fix this?
CodePudding user response:
This issue was caused by the 1.70 update of VSCode, an issue has been raised on the VSCode github: https://github.com/microsoft/vscode/issues/157611
In the meantime the fix is to disable shellIntegration in your VSCode settings: "terminal.integrated.shellIntegration.enabled": false
and add the following to your .zshrc
:
[[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --locate-shell-integration-path zsh)"