公众号关注 「奇妙的 Linux 世界」
设为「星标」,每天带你玩转 Linux !
在使用远程服务器(例如: 虚拟机)时,有时您需要切换到不同的用户,例如:短时间内获得更高的权限。
通常可以使用以下命令之一来完成:
$ su <different-user>
$ sudo -i -u <different-user>
但如果你想使用 VSCode
时更轻松地探索文件系统和编辑代码,这就不那么简单了。比如:登录用户为 mike
,而您想在 VSCode 资源管理器中访问 root
用户的主目录。
首先,您需要在 VSCode
配置中启用一些标志,你可以在用户界面 ( 用 ctrl+,
打开设置,搜索 Remote.SSH
) 中启用:

或 settings.json
中编辑:
"remote.SSH.useLocalServer": true,
"remote.SSH.enableRemoteCommand": true,
然后,打开 SSH
配置文件(默认为 /home/$USER/.ssh/config
),在主机中添加 RemoteCommand
和 RequestTTY
选项。
例如:
Host example.com
HostName example.com
IdentitiesOnly=yes
User my_user
RequestTTY yes
RemoteCommand sudo -i -u other_user
注:
RequestTTY
选项的作用是指定是否为会话请求伪 TTY。参数可以是:no(从不请求 TTY)、yes(当标准输入为 TTY 时始终请求 TTY)、force(始终请求 TTY)或 auto(打开登录会话时请求 TTY)。该选项与 -t 和 -T 标志相同。如果你不加上这个选项,通过 SSH 命令行登陆时将无法正常登陆。
如果远程服务器可以访问互联网,那就已经配置完成了。
否则,您需要采取以下两个步骤中的一个。
远程服务器可通过代理访问互联网
在这种情况下,请在需要切换用户的主目录下创建一个 .wgetrc
文件。例如: /home/other_user/.wgetrc
,内容如下:
use_proxy=on
http_proxy=http://proxy.host:<port>
https_proxy=http://proxy.host:<port>
这是必要的,因为 VSCode
会在会话开始时使用 wget
下载必要的二进制文件。
远程服务器根本无法访问互联网
在这种情况下,您需要在本地下载 VSCode
服务器文件,然后将其复制(例如: 使用 scp
)到服务器,具体步骤如下:
# 本地下载
$ commit_id=f1e16e1e6214d7c44d078b1f0607b2388f29d729
$ curl -sSL "https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable" -o vscode-server-linux-x64.tar.gz
$ scp vscode-server-linux-x64.tar.gz user@remotehost:/home/user/
# 远程服务器操作
$ commit_id=f1e16e1e6214d7c44d078b1f0607b2388f29d729
$ mkdir -p ~/.vscode-server/bin/${commit_id}
$ tar zxvf ~/vscode-server-linux-x64.tar.gz -C ~/.vscode-server/bin/${commit_id} --strip 1
$ touch ~/.vscode-server/bin/${commit_id}/0
更详细步骤可参考:https://stackoverflow.com/a/57601121/8175198
或者,先用 VSCode
远程 SSH
连接正常用户,让它传输文件,然后将文件复制到另一个用户的主目录。
$ cp -r /home/mike/.vscode-server/ /root/
您还可以将默认设为在客户端上下载 VSCode 服务器文件,并使用 scp
将其传输到主机,而不是先尝试 wget
将其下载到主机上。

您也可以更改这些文件的安装位置

参考文档:
https://medium.com/@krisztian.sala/vs-code-remote-ssh-as-another-user-57d449e20fb1
https://stackoverflow.com/a/57601121/8175198
https://github.com/b01/dl-vscode-server
🚀 最近,我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神,有兴趣的同学可以加入和我们一起交流技术,在 「奇妙的 Linux 世界」 公众号直接回复 「加群」 邀请你入群。
🌟『极客视界』科技达人必备综合资讯指南,等你来探索!访问网址 https://bestgeek.org 即可打开新世界。
📕 关注『奇妙的 Linux 世界』公众号,带你开启有趣新生活!更多好用好玩的软件资源,可访问 https://666666.dev 免费获取。
你可能还喜欢
点击下方图片即可阅读
无需 Dockerfile,打造你的专属即时容器镜像 : Nixery 中文使用指南
点击上方图片,『美团|饿了么』大额外卖红包天天免费领
更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!