这是我参与「第五届青训营 」伴学笔记创作活动的第9天。
由于这节课需要用到docker,我打算直接使用虚拟机来调用linux的终端实现。本文主要是讲windows端使用vscode连接虚拟机。
一、工具概述
这里我使用ubuntu 64 18.04版本。我们是要通过SSH远程登录帮助我们能够在本地机的vscode上去调用虚拟机操作系统下的文件。同样我们课程中有些不支持windows的工具,我们也可以通过远程登录来实现本地调用Linux系统的终端来使用这些工具,比如之前课提到的Kitex代码生成工具。
二、本地部署SSH
打开vscode,选择左边扩展,搜索SSH,选择第一项Remote – SSH安装。左边会出现远程资源管理器。
选择左边远程资源管理器,会出现下图表,对准SSH会出现设置按钮,点击该按钮可以配置SSH文件。
点击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。
远程右边刷新一下,会出现链接选项,该选项用户名为Host后面跟随的名称。
此时我们回到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,这样我们才能从本地登录。
启动ssh
service sshd start
检查ssh状态查看是否连接,出现active(running)表示连接成功。
service sshd status
如果直接使用root用户会报错,这里我创建了一个新用户。
创建一个新用户并设置密码,其中aaa这里由用户来设置新的用户名
sudo useradd aaa -m
sudo passwd aaa
检查创建的用户
ls /home/
四、连接
回到本地机的vscode,其中“右箭头”表示当前页面链接,“窗口”表示新建窗口链接。(第二个选项可以直接把本地机上的文件拖到linux环境下运行。当然,虚拟机上也要配置相应的语言环境)
输入密码,这里输入密码是隐式的
这里要提一句,如果直接使用root用户会报错。”Permission denied, please try again.”指的是SSH拒绝了密码,请再试一次。这里建议不要使用root用户。
左下角如果有”SSH:xxx.xxx.xxx.xxx” 就表示连接成功,这时可以打开linux的文件夹。
下方选择bash可以打开linux的终端
最后本地调用linux终端界面。
总结
其实从Go框架三件套就在搞这个了,但问题是无论我怎样输入密码都会出现”Permission denied, please try again.”,查了网上很多教程都没成功。即便我改了ssh配置也没用。最后才查到一篇博客讲不要使用root用户,最后终于成功连上。不过现在遇到新问题是docker-compose安装好以后输入docker-compose up指令会卡住,下载进度条一开始会动,但是过了很长一段时间都不会动,如下图。
参考
使root用户通过SSH登录报错“Permission denied, please try again”的错误_HarveyH的博客-CSDN博客