vscode remote-SSH连接vmware的Ubuntu22.10虚拟机

写这篇文章的目的是不浪费自己3个小时的探索,也给别人提供一个浅薄的思路。三个多小时,我哭了。。。

文章目录

      • 先来看一个成功的例子
      • 如何配置
        • 固定Ubuntu虚拟机的IP地址并添加VMware端口映射规则
        • 在Ubuntu中配置ssh服务
        • vscode remote-SSH配置
        • 如果上述还是不行
        • ssh免密连接

先来看一个成功的例子

  1. 首先是Ubuntu中的配置。
    安装的ssh相应的包:
    ssh连接相应包
    ssh服务的情况:
    vscode remote-SSH连接vmware的Ubuntu22.10虚拟机_第1张图片
    在这里插入图片描述
    ssh服务“树”(部分):
    vscode remote-SSH连接vmware的Ubuntu22.10虚拟机_第2张图片
    防火墙(为了方便,我直接关闭了,也可只放行ssh端口):
    vscode remote-SSH连接vmware的Ubuntu22.10虚拟机_第3张图片
    ip(固定了虚拟机IP地址):
    vscode remote-SSH连接vmware的Ubuntu22.10虚拟机_第4张图片

若只开放了tcp的22端口:
vscode remote-SSH连接vmware的Ubuntu22.10虚拟机_第5张图片

  1. vmware中的配置:

vscode remote-SSH连接vmware的Ubuntu22.10虚拟机_第6张图片
vscode remote-SSH连接vmware的Ubuntu22.10虚拟机_第7张图片

  1. vscode的remote-SSH:

在这里插入图片描述

命令:ssh -p 22 [email protected]

如何配置

固定Ubuntu虚拟机的IP地址并添加VMware端口映射规则

在VMware中依次编辑-虚拟网络编辑器,选中VMnet8,设定子网IP为192.168.81.0(自己选一个喜欢的,后面的IP要相应改变),子网掩码为255.255.255.0

再选中NAT设置,填写网关为192.168.81.2,添加一个端口映射规则端口转发那里,该规则为

主机端口 类型 虚拟机IP地址
22 TCP 192.168.81.150:22

这样,我们VMware中的设置完毕。

接下来,我们还需要设置Ubuntu虚拟机的IP地址。
打开虚拟机,依次setting-Network-,在Wired那个单元格里点击'设置'图标
在这里插入图片描述
然后按照VMwre中已设置好的IP相关信息,进行设置。
vscode remote-SSH连接vmware的Ubuntu22.10虚拟机_第8张图片
这样,Ubuntu虚拟机本身的IP固定完毕。

可以在ubuntu的终端使用ip a查看env33inet是否为我们设置的192.168.81.150

在Ubuntu中配置ssh服务

可以使用如下命令安装:

sudo apt install openssh-client
sudo apt install openssh-server
sudo apt install openssh-sftp-server
# 若提示错误且镜像已经设置了,可以把apt改成apt-get试试,不行的话自行搜索

打开并且开机自启动ssh服务:

# 首先查看ssh服务状态
sudo systemctl status ssh
# 打开并设置自启动
sudo systemctl start ssh  # sudo /etc/init.d/ssh start也可以
sudo systemctl enable ssh
# 查看ssh进程
ps -ef | grep ssh

在这里插入图片描述

配置防火墙放行端口(端口号:22):

sudo ufw allow 22/tcp
sudo ufw reload
# 查看ufw放行端口
sudo ufw status

vscode remote-SSH连接vmware的Ubuntu22.10虚拟机_第9张图片

vscode remote-SSH配置

默认已经安装了remote-SSH插件。
点击+,添加SSH连接,命令如下:ssh -p 22 [email protected]
vscode remote-SSH连接vmware的Ubuntu22.10虚拟机_第10张图片
connect+输入密码就可以成功连接了。

如果上述还是不行

重置vmware各个网卡的网络(虚拟网络编辑器-还原默认配置),重新安装openssh-server包,重新配置ubuntu的IP、vmware端口映射,重新配置vscode中ssh的config配置(C:/Users/用户名/.ssh/config),重新用vscode连接,这个时候应该可以了。成功情况如下:

vscode remote-SSH连接vmware的Ubuntu22.10虚拟机_第11张图片

ssh免密连接

参考:这里

PowerShell里输入命令ssh-keygen,一直回车直到完成,查看路径C:\Users\用户名\.ssh文件夹,可以看到id_rsaid_rsa.pub文件。

cmdPowerShell里用scpid_rsa.pub文件传输到虚拟机的~/.ssh目录下,具体命令如下:

scp C:\Users\Lijio\.ssh\id_rsa.pub [email protected]:~/.ssh

在虚拟机里,使用命令

cat ~/.ssh/id_rsa.pub >> authorized_keys

这样我们用vscode连接虚拟机时就不用输入密码了。

你可能感兴趣的:(linux,vscode,ssh,linux)