错误log

用 VScode直接连接服务器,遇到这个问题,我的终端ssh是可以直接登上服务器的,VScode不行:

[18:41:45.067] Server installation process already in progress - waiting and retrying
[18:41:45.067] Terminating local server
[18:41:45.071] Local server exit: 15
[18:41:46.072] askpass server listening on /var/folders/gg/68l8jlpn7dxfb4mkr6zb6jjm0000gq/T/vscode-ssh-askpass-4fd30eadf02a5dc098ffcbe453cb2daedc92009e.sock
[18:41:46.073] Spawning local server with {"serverId":2,"ipcHandlePath":"/var/folders/gg/68l8jlpn7dxfb4mkr6zb6jjm0000gq/T/vscode-ssh-askpass-21cb410da7dd14a67e7a2cfc6fe0dbd9447b199c.sock","sshCommand":"ssh","sshArgs":["-v","-T","-D","65022","-o","ConnectTimeout=15","10.162.113.23"],"serverDataFolderName":".vscode-server","dataFilePath":"/Users/XX/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-e8c7840d-784b0177c56c607789f9638da7b6bf3230d47a8c-0.84.0/data.json"}
[18:41:46.073] Local server env: {"SSH_AUTH_SOCK":"/private/tmp/com.apple.launchd.LDCH40ZFya/Listeners","SHELL":"/bin/zsh","DISPLAY":"1","ELECTRON_RUN_AS_NODE":"1","SSH_ASKPASS":"/Users/XX/.vscode/extensions/ms-vscode-remote.remote-ssh-0.84.0/out/local-server/askpass.sh","VSCODE_SSH_ASKPASS_NODE":"/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper.app/Contents/MacOS/Code Helper","VSCODE_SSH_ASKPASS_EXTRA_ARGS":"--ms-enable-electron-run-as-node","VSCODE_SSH_ASKPASS_MAIN":"/Users/XX/.vscode/extensions/ms-vscode-remote.remote-ssh-0.84.0/out/askpass-main.js","VSCODE_SSH_ASKPASS_HANDLE":"/var/folders/gg/68l8jlpn7dxfb4mkr6zb6jjm0000gq/T/vscode-ssh-askpass-4fd30eadf02a5dc098ffcbe453cb2daedc92009e.sock"}
[18:41:46.074] Spawned 64257
[18:41:46.163] > local-server-2> Spawned ssh, pid=64259
[18:41:46.166] stderr> OpenSSH_8.6p1, LibreSSL 3.3.5
[18:41:46.341] stderr> debug1: Server host key: ssh-ed25519 SHA256:WdU4CyxyLzP5FqTMTlYgP+SgqaNgzwe6lKKY5xkmxbU
[18:41:46.570] stderr> Authenticated to 10.162.113.23 (via proxy).
[18:41:46.641] stderr> /etc/profile.d/ssh_env.sh: line 1: UID: readonly variable
[18:41:46.671] > ready: 4590bbfbacf6
[18:41:46.708] > Linux 5.4.0-81-generic #91-Ubuntu SMP Thu Jul 15 19:09:17 UTC 2021
[18:41:46.708] Platform: linux
[18:41:46.739] > /bin/bash
[18:41:46.739] Shell: bash
[18:41:46.739] Creating bash subshell inside "bash"
[18:41:46.784] > bash version:  5.0.17(1)-release
[18:41:46.839] > 4590bbfbacf6: running
[18:41:46.911] stderr> main: line 247: /home/xx/.vscode-server/bin/784b0177c56c607789f9638da7b6bf3230d47a8c/vscode-remote-lock.XX.784b0177c56c607789f9638da7b6bf3230d47a8c: Permission denied
[18:41:46.912] > Acquiring lock on /home/XX/.vscode-server/bin/784b0177c56c607789f9638da7b6bf3230d47a8c/vscode-remote-lock.XX.784b0177c56c607789f9638da7b6bf3230d47a8c
[18:41:46.913] > Installation already in progress...
> If you continue to see this message, you can try toggling the remote.SSH.useFlock setting
> 4590bbfbacf6: start
> exitCode==24==
> listeningOn====
> osReleaseId==ubuntu==
> arch==x86_64==
> tmpDir==/tmp==
> platform==linux==
> unpackResult====
> didLocalDownload==0==
> downloadTime====
> installTime====
> extInstallTime====
> serverStartTime====
[18:41:46.913] stderr> flock: 99: Bad file descriptor
[18:41:46.914] > 4590bbfbacf6: end
[18:41:46.915] Received install output: 
exitCode==24==
listeningOn====
osReleaseId==ubuntu==
arch==x86_64==
tmpDir==/tmp==
platform==linux==
unpackResult====
didLocalDownload==0==
downloadTime====
installTime====
extInstallTime====
serverStartTime====

他这一大串 log,就这一句有用:

[18:41:46.911] stderr> main: line 247: /home/xx/
.vscode-server/bin/784b0177c56c607789f9638da7b6bf3230d47a8c/
vscode-remote-lock.XX.784b0177c56c607789f9638da7b6bf3230d47a8c: Permission denied

就很奇怪,用户目录下,创建个目录咋能没有权限呢?

解决办法

终端ssh登上服务器,直接把这个~/.vscode-server删除就行

rm -rf ~/.vscode-server/

一般来说得用sudo权限:

sudo rm -rf ~/.vscode-server/

复盘

我用 ssh-keygen 整了ssh免密登录,但是第一次我不知道服务器的User名字,我是直接这样用VScode remote ssh:

ssh root@xx.xx.xx.xx

第一次是可以登录的,于是在~/.vscode-server下创建目录的权限都是 root 权限

之后我用 一般用户 权限登录的时候,没有权限在 ~/.vscode-server下进行操作,所有就会产生这样的为

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐