vscode连接虚拟机 | 青训营笔记

728 阅读3分钟
这是我参与「第五届青训营 」伴学笔记创作活动的第9天。

由于这节课需要用到docker,我打算直接使用虚拟机来调用linux的终端实现。本文主要是讲windows端使用vscode连接虚拟机。

一、工具概述

这里我使用ubuntu 64 18.04版本。我们是要通过SSH远程登录帮助我们能够在本地机的vscode上去调用虚拟机操作系统下的文件。同样我们课程中有些不支持windows的工具,我们也可以通过远程登录来实现本地调用Linux系统的终端来使用这些工具,比如之前课提到的Kitex代码生成工具。

二、本地部署SSH

打开vscode,选择左边扩展,搜索SSH,选择第一项Remote – SSH安装。左边会出现远程资源管理器。

1.jpg

选择左边远程资源管理器,会出现下图表,对准SSH会出现设置按钮,点击该按钮可以配置SSH文件。

2.jpg

点击SSH配置文件后选择“C:\Users\XXX.ssh\config”(后置文件为“.ssh\config“即可)选择以后按下列格式输入内容。其中HostName是虚拟机的IP地址,User是连接虚拟机的用户名。这里最好不要使用root用户。Host格式建议为“用户名@IP地址”

Host aaa@192.168.0.0
    HostName 192.168.0.0
    User aaa

这里说一下linux查询IP地址,ctrl+alt+t打开终端输入ifconfig。 5.jpg

远程右边刷新一下,会出现链接选项,该选项用户名为Host后面跟随的名称。

4.jpg

此时我们回到linux操作系统配置SSH链接。

三、虚拟机部署

输入下列语句安装openssh服务端

sudo apt-get install openssh-server

检查ssh安装版本

ssh -V

打开/etc/ssh/sshd_config修改配置,这样我们才能本地链接虚拟机

sudo vim /etc/ssh/sshd_config

把PermitRootLogin prohibit-password注释掉,增加PermitRootLogin yes,这样我们才能从本地登录。

6.jpg

启动ssh

service sshd start

检查ssh状态查看是否连接,出现active(running)表示连接成功。

service sshd status

7.jpg

如果直接使用root用户会报错,这里我创建了一个新用户。

创建一个新用户并设置密码,其中aaa这里由用户来设置新的用户名

sudo useradd aaa -m
sudo passwd aaa

检查创建的用户

ls /home/

四、连接

回到本地机的vscode,其中“右箭头”表示当前页面链接,“窗口”表示新建窗口链接。(第二个选项可以直接把本地机上的文件拖到linux环境下运行。当然,虚拟机上也要配置相应的语言环境)

8.jpg

输入密码,这里输入密码是隐式的

10.jpg

这里要提一句,如果直接使用root用户会报错。”Permission denied, please try again.”指的是SSH拒绝了密码,请再试一次。这里建议不要使用root用户。

13.jpg

左下角如果有”SSH:xxx.xxx.xxx.xxx” 就表示连接成功,这时可以打开linux的文件夹。

11.jpg

下方选择bash可以打开linux的终端

12.jpg

最后本地调用linux终端界面。

14.jpg

总结

其实从Go框架三件套就在搞这个了,但问题是无论我怎样输入密码都会出现”Permission denied, please try again.”,查了网上很多教程都没成功。即便我改了ssh配置也没用。最后才查到一篇博客讲不要使用root用户,最后终于成功连上。不过现在遇到新问题是docker-compose安装好以后输入docker-compose up指令会卡住,下载进度条一开始会动,但是过了很长一段时间都不会动,如下图。

15.jpg

参考

使root用户通过SSH登录报错“Permission denied, please try again”的错误_HarveyH的博客-CSDN博客