vs code连接远程服务器的核心在于配置ssh并使用remote development插件。1. 安装remote development插件以支持ssh、containers和wsl三种远程开发方式;2. 生成ssh密钥对并通过ssh-copy-id或手动方式将公钥复制到远程服务器;3. 确保.ssh目录及authorized_keys文件权限正确,测试ssh连接是否无需密码登录;4. 在vs code中通过remote-ssh扩展添加并连接远程主机,选择工作目录后即可进行远程开发;5. 遇到问题时检查ssh配置、防火墙设置、ssh服务状态、网络连通性及vs code插件冲突;6. 进阶用法包括配置ssh config文件简化连接、安装必要插件、使用git同步代码以及利用port forwarding访问远程服务;替代方案有jetbrains ides、tmux/screen+vim/emacs及cloud ides,可根据需求选择适合的工具。

总的来说,VS Code 连接远程服务器,就是为了能在本地用强大的编辑器,干远程服务器上的活儿。核心在于配置好 SSH 连接,然后用 VS Code 的 Remote Development 插件来实现无缝开发体验。

配置步骤,遇到的坑,还有一些进阶用法,下面细说。

解决方案

安装 Remote Development 插件: 打开 VS Code,搜索 "Remote Development" 插件并安装。这个插件包包含了 SSH、Containers 和 WSL 三种远程开发方式的支持。
-
配置 SSH 连接: 这是关键一步。你需要确保本地电脑可以通过 SSH 连接到远程服务器。
生成 SSH 密钥对 (如果还没有): 在本地终端执行
ssh-keygen -t rsa -b 4096,一路回车即可。会在~/.ssh目录下生成id_rsa(私钥) 和id_rsa.pub(公钥)。将公钥复制到远程服务器: 使用
ssh-copy-id user@remote_server_ip命令,将本地公钥复制到远程服务器的~/.ssh/authorized_keys文件中。 或者,手动将id_rsa.pub的内容追加到远程服务器的~/.ssh/authorized_keys文件中。 如果远程服务器上没有.ssh目录或authorized_keys文件,需要手动创建。测试 SSH 连接: 在本地终端执行
ssh user@remote_server_ip,如果不需要输入密码就能登录,说明 SSH 连接配置成功。
-
VS Code 连接远程服务器:
打开 VS Code,按下
F1或Ctrl+Shift+P(Cmd+Shift+P on Mac),输入 "Remote-SSH: Connect to Host..." 并选择。选择 "Add New SSH Host...",输入 SSH 连接字符串
user@remote_server_ip。VS Code 会提示选择一个配置文件来保存 SSH 连接信息,一般选择默认的
~/.ssh/config即可。连接成功后,VS Code 会打开一个新的窗口,标题栏会显示 "SSH: remote_server_ip"。
点击 "Open Folder" 或者 "File -> Open Folder...",选择远程服务器上的工作目录。
开始远程开发: 现在你就可以像在本地一样,在 VS Code 中编辑、运行、调试远程服务器上的代码了。VS Code 会自动将本地的插件、设置同步到远程服务器上。
解决 VS Code 远程连接失败的常见问题
SSH 配置错误: 仔细检查 SSH 密钥对是否正确生成,公钥是否正确复制到远程服务器的
authorized_keys文件中。 权限问题也需要注意,.ssh目录和authorized_keys文件的权限必须正确 (一般是700和600)。防火墙阻止连接: 确保本地电脑和远程服务器的防火墙允许 SSH 连接 (默认端口 22)。
远程服务器 SSH 服务未启动: 检查远程服务器上的 SSH 服务是否正在运行。可以使用
sudo systemctl status sshd(Linux) 或sudo service ssh status命令来查看 SSH 服务的状态。VS Code 插件冲突: 有时候某些 VS Code 插件可能会导致远程连接失败。尝试禁用一些插件,看看是否能解决问题。
网络问题: 检查本地电脑和远程服务器之间的网络连接是否正常。可以使用
ping remote_server_ip命令来测试网络连通性。
如何优化 VS Code 远程开发体验?
-
使用 SSH config 文件:
~/.ssh/config文件可以简化 SSH 连接配置。 例如,可以添加如下配置:Host my_remote_server HostName remote_server_ip User user IdentityFile ~/.ssh/id_rsa这样,以后就可以直接使用
ssh my_remote_server命令连接到远程服务器,VS Code 中也可以使用my_remote_server作为 Hostname。 安装必要的插件: 根据你的开发需求,在远程服务器上安装必要的 VS Code 插件。 例如,Python 开发需要安装 Python 插件,JavaScript 开发需要安装 ESLint、Prettier 等插件。
配置代码同步: 可以使用 Git 来管理远程服务器上的代码,并实现代码同步。
使用 VS Code 的 Port Forwarding 功能: 如果需要在本地访问远程服务器上运行的服务 (例如,Web 应用、数据库),可以使用 VS Code 的 Port Forwarding 功能。 在 VS Code 的 "Ports" 视图中,点击 "Forward a Port" 按钮,输入远程服务器上的端口号和本地端口号即可。
VS Code 远程开发有哪些替代方案?
JetBrains IDEs (IntelliJ IDEA, PyCharm 等): JetBrains IDEs 也提供了强大的远程开发功能。 它们的 "Projector" 和 "Gateway" 功能可以让你在本地运行 IDE 的客户端,并在远程服务器上运行 IDE 的后端。
Tmux/Screen + Vim/Emacs: 这是传统的命令行远程开发方式。 Tmux 或 Screen 可以让你在远程服务器上创建多个会话,Vim 或 Emacs 则是强大的文本编辑器。
Cloud IDEs (GitHub Codespaces, Gitpod 等): Cloud IDEs 提供了基于浏览器的集成开发环境。 它们可以让你在云端编写、运行、调试代码,无需配置本地开发环境。
选择哪种远程开发方式,取决于你的个人喜好、项目需求和网络环境。 VS Code 的 Remote Development 插件是一个不错的选择,因为它免费、易用、功能强大。 但是,如果你的项目对性能要求很高,或者你需要使用一些特定的 IDE 功能,那么 JetBrains IDEs 或 Cloud IDEs 可能会更适合你。 传统的命令行方式则更适合那些喜欢在终端中工作,并且对 Vim/Emacs 非常熟悉的开发者。










