自从 Typora 开始收费之后,我彻底转向使用 VS Code ( Visual Studio Code ) 进行文章撰写。作为一款 Markdown 编辑器,它已经完全满足了我的需求。
然而,我开始思考是否可以将 Visual Studio Code 用作服务器管理器。在此之前,我一直使用 FinalShell 进行服务器管理,这款工具具备以下特点,也是我所喜欢的:

简单的服务器资源监控
服务器文件浏览
终端功能
多服务器管理

当 VS Code 发布 Remote SSH 功能时,我并没有太过关注。该功能的初衷是用于远程开发,而我并没有远程开发的需求。然而,当我开始进行远程开发时,我决定尝试使用 Remote SSH 。结果令我惊喜地发现,Remote SSH 非常适合用于服务器管理工作。
那么,VS Code 有哪些特点,并且满足了我哪些需求呢?
VS Code 的特点
多服务器管理
通过在你需要访问的远程服务器中配置好 SSH Key ,便可以轻松地设置 Remote SSH ,并指定服务器的 IP 地址,从而直接通过 Remote SSH 访问服务器。
Host server1
HostName 服务器 1 的 IP 地址
User 用户名

Host server2
HostName 服务器 2 的 IP 地址
User 用户名

通过这样的配置,然后就可以方便地在 VS Code 中访问和管理多个服务器。只需单击服务器列表中的相应服务器,即可快速连接到目标服务器,并在远程环境中执行所需的操作。

文件浏览器
和正常一个项目的使用一样,VS Code 可以打开服务器的一个文件夹。然后我们就可以进行各种各样的文件浏览器的常规操作。还可以使用搜索功能快速查找和定位特定的文件。
我通常就会直接把账号目录直接打开。

同时还可以直接集成 VS Code 本身拥有的强大的文件编辑能力。
从此告别 ls、mkdir、touch、vi 等操作。
方便快捷的终端体验

可以同时打开多个终端实例,并在它们之间切换。每个终端实例都可以独立运行命令,并保留其输出历史记录。
还可以在编辑器的多个标签页或分割视图中同时打开不同的终端实例,以便同时执行不同的命令。

除此之外,在 VS Code 中,可以通过右键单击文件或文件夹,选择"在终端中打开",快速打开终端并自动切换到对应的路径。再也不用痛苦的到处 cd 了。

Docker GUI 管理
由于我大部分服务都是放在 Docker 上,所以对于 Docker 的使用是非常高频的。
如果你在服务器上使用 Docker 进行容器化管理,VS Code 通常就会推荐你安装 Docker 扩展,然后就可以并以图形化界面的形式管理和操作 Docker 容器。可以方便地查看和管理容器、镜像、网络和卷等 Docker 资源,执行常见的 Docker 命令,以及监控容器的状态和日志。

这基本覆盖了大部分 Docker 常用的操作,也让我大部分时间不再需要使用 Portainer 或是命令行了。
Git GUI 集成
VS Code 提供了强大的 Git GUI 集成功能,可以在代码仓库上进行版本控制和协作。可以直接通过 GUI 进行查看提交历史、比较文件差异、切换分支、合并代码,以及推送和拉取代码等操作。
丰富的个性化主题、插件生态
如果本身就使用 VS Code ,便可以直接继承自己的审美。同时 VS Code 比其他终端管理软件拥有更为丰富丰富的个性化主题选项,可以根据自己的喜好和习惯选择适合的主题。也具有丰富的插件社区。
其它
除此之外,VS Code 本身就具有跨平台支持、多语言支持等特性,而且它完全免费。
如何使用 VS Code 进行服务器管理
你需要满足如下条件

能够运行 VS Code 的电脑
正版的 VS Code
生成 SSH Key 并完成配置
Remote SSH 插件

其实你需要的并不多,核心是 VS Code 中的 Remote SSH 插件。
配置 SSH Key
你需要在你的电脑上生成 SSH Key ,并将公钥配置到服务器上以实现免密登录。你可以在网上查找相关教程了解如何生成和配置 SSH Key 。
配置 Remote SSH
通过 这个链接 安装 Remote SSH 后。
你可以按照以下步骤来打开和配置 SSH 主机:

在 VS Code 左下方找到 Remote SSH 的图标按钮。
点击该按钮,然后选择 "Connect to Host" 选项。
再次点击 "Configure SSH Hosts"。

就可以在 VS Code 中进行配置,指定服务器的 IP 地址和用户名。示例配置如下:
Host server1
HostName 服务器 1 的 IP 地址
User 用户名

Host server2
HostName 服务器 2 的 IP 地址
User 用户名

完成配置后便可以在左下角直接连接服务器了。
插件以及其他推荐
Monitor Pro 插件
资源监控,由我开发。
Monitor Pro 是一款资源监控工具,实时跟踪系统指标。监测 CPU 、内存、网络、文件系统使用率,电池百分比和充电状态。可自定义顺序和刷新间隔,提供高占用警报。适用于开发人员、系统管理员和普通用户。

marketplace.visualstudio.com/items?itemName=nexmoe.monitor-pro
Docker 插件
如果你在使用 Docker 容器来部署应用程序,这个插件可以帮助你在 VS Code 中管理和调试 Docker 容器。
Wakatime 插件
统计你在服务器上的摸鱼时间。
zsh 与 ohmyzsh
使用 ohmyzsh 以及它的生态,为你的命令行集成自动补全和纠错功能。

vscode remote server 端会消耗 1GB 左右的内存,并在磁盘上保留最近四个版本的程序本体,以及插件的历史版本。而且 server 端默认会启动类似 反弹 shell 的隧道,并定期执行端口扫描。

长期使用下来,有几个问题:1. config 里配置的服务器有十几个,每次加载出这个左侧服务器列表要几十秒好像,太慢了2. 有连接保活方式吗?有时盖子合上重新打开,又要输入密码,太麻烦了

代替 typora 的话有没有比较好的最佳实践或者插件推荐下? typora 主要是所见即所得, 几个好用的快捷键, 以及配合插件的复制上传图片到图床的功能 .

vscode 的 remote ssh 确实很好用,让我放弃用 termius

支持跳板机不?

SSH 免密登录,之后就不用输密码了

对小内存不太友好,我的 2C2G VPS 经常卡死

笑死,还真有人为了捡个芝麻丢个西瓜。vscode remote server 的内存占用、内存泄漏、cpu 异常占用你们是真不管啊。。。

每次连接 ssh 都要输入密码

看了一眼我的列表里那些 1c1g 的小鸡,想想还是算了,性能实在跑不起这玩意

内存占用太大了,而且偶尔还会出现内存泄露的问题。服务器内存大可以上

两个一个是 office viewer一个是 foam我现在用 foam 但是不需要所见即所得. 我都不 preview. preview 全靠脑补. 眼中有码,心中无码. dog

有一个困扰很久的小问题,这个 remote 的机器列表,config 倒是可以直接复制,但是里边存了多台服务器打开过文件夹的 list ,这个好像无法备份?多台机器之前好像没法儿共享这个~ 不知有无一些奇技淫巧🤒

请用 openssh 自带的 ControlMaster 功能,不重启 session 一直在。win 下的 openssh 用不了,只能用 wsl 里的,win 下的 vscode 也可以调 wsl 里的 ssh

所以,op 是用的本地 vs code 还是 vs code remote server ?

你这个 Monitor Pro 是真不错,刚好我最近在找监控资源的插件,我之前试了几个体验都不怎么好,你这个挺全的。就是我觉得如果加入 task manager 功能就更妙了,这样连 top 之类的命令都省了,毕竟服务器资源监控有的时候是需要看一看各进程的占用量的😂

弃了吧,我现在主力用网页端,sshwifty

支持 jumperserver

github.com/coder/code-server 服务器运行, 网页端操作

我 fork 改过一个,可以本地直接打开远程的 vscode 也可以远程打开本地的 vscode在命令行和 code 行为一致。特别好用 github.com/yihong0618/rcode twitter.com/yihong0618/status/1539592302636965889

支持 sudo 提权么,因为我禁用了 root 登录

请使用密钥验证替代密码验证,无论是 Linux 还是 Windows Windows Docs: learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement

自己买台 PC 装 Linux ,WireGuard + FRP 实现 VPN 接入(可以访问所有 192.168.0.0/16 ),然后再配合虚拟化,你就可以有一个超级强悍的个人开发网络了servers

试过了,竟然是在远程服务器上安装 vs code server...

#15 本地 VS Code 用 Remote SSH 连接远程服务器

不错啊

#17用过,很不方便

#23我用 Tailscale

有准备做资源监控的打算

vscode 的插件 zh.database-client.com/#/home?source=8828_cweijan.vscode-sshdatabase-client 不香吗,数据库,rdp ssh 等都可以

自从 Typora 开始收费之后,我就买了授权

vs code server 吃性能吃的一批

只能说确实太方便了,对我来说方便到了可以忽略这些的程度