Skip to content
On this page

vscode_SSH 连接 ubuntu 虚拟机


标签:vscode/tip  

Developing on Remote Machines using SSH and Visual Studio Code

Ubuntu 安装 OpenSSH

大多数的情况下,Ubuntu 已经安装了 SSH 服务器

bash
sudo apt install openssh-server

桥接网络模式

网卡采用的是桥接模式的话,虚拟机和宿主机共享物理网卡,在局域网下有同层级的 IP 地址,开发部分网络程序会非常方便,但缺陷在于如果路由器连接的不稳定,可能造成虚拟机和宿主机之间的通信不稳定。

img/202304102145.jpg

首先从虚拟机的设置里确定使用的桥接网络模式,然后打开虚拟机,通过 ifconfig 确定虚拟机的 ip 地址。

img/202304102149.jpg

记住这个 IP 地址,然后打开 VSCode,点击最左下角的图标:

img/202304102151.jpg

在弹出的对话框中选择"connect to host..."然后输入:

bash
<用户名>@<IP>

如图:

img/202304102154.jpg

然后选择 "Linux > Sure" 再输入对应的密码,稍等片刻,等右下角显示 SSH: <ip>并且终端面板显示 bash 的时候,说明连接成功:

img/202304102156.jpg

NAT 网络模式

NAT 网络的连接方法是在宿主机中虚拟一张网卡,虚拟机通过该虚拟网卡连接外部网络环境。其好处在于虚拟机只能在宿主机内部进行访问,对虚拟机更加安全。此外,外部网络环境的不稳定对虚拟机和宿主机之间的连接影响不大。但较为麻烦的是,虚拟机的端口需要通过虚拟机程序进行端口转发到宿主机的端口,才能访问对应的应用程序(和防火墙的设置很像)。

img/202304102202.jpg

在虚拟机程序中设置好网络模式和端口转发规则,我建议不要对应宿主机的 22 端口,因为很多时候这些数字小的端口是被系统进行预留的,即便是要用也可能遇到管理员权限需求。如上图,我把虚拟机的 22 转发到了宿主机的 10022 端口。

后续的操作和#桥接网络模式基本一样,但是输入连接的时候需要输入:

bash
<用户名>@localhost:<端口>

如下图所示:

img/202304102207.jpg

之后的步骤也是一样的。

2023-04-16 Update:

VMWare 的 NAT 模式似乎不需要端口映射,直接从 IP 连接即可。

500

Alpine 连接的方法

Alpine 对 VSCode Remote 的兼容性差一点。

先安装如下依赖^1

bash
# This is what make vscode remote-ssh work
apk add gcompat libstdc++ curl git

# As alpine by default use busybox and some common utilities behave differently, like grep
apk add grep dropbear-scp dropbear-ssh

# Add zsh if using zsh shell
apk add zsh

然后配置一下 ssh 的配置文件 https://stackoverflow.com/a/68815636

Last updated: