VSCode Remote-SSH插件使用的若干问题

以Windows10系统主机连接VMWare下的Ubuntu18.04.6虚拟机为例。 本文的方法是解决的问题的方法之一而非唯一方法。

首先学习最简单的查询主机IP与虚拟机IP的方法。

在Windows下打开命令提示符输入ipconfig或ipcondig/all即可,在Linux下输入ifconfig。 或者使用系统GUI点击设置查看网络设置。

在VMWare中,可以通过虚拟网络编辑器配置虚拟机网络,往往将虚拟机网络设置为NAT模式,在VMWare Pro版本中默认为Vnet8为NAT模式。

*如果网络配置出现问题,在虚拟网络编辑器中点击更改设置、还原默认设置。

主机端

1.安装启动SSH

以管理员身份运行Power Shell 执行如下命令查看当前OpenSSH安装情况:

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

本机的OpenSSH客户端、服务端均显示Installed,即已安装。未安装往往显示为NotPresent或其他形式。

注意,有些主机可能只安装了Client但未安装Server。

安装客户端

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

安装服务端

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

在命令行中输入ssh,如果正确安装应该出现如下输出。

2.SSH配置

完成安装后,以管理员身份运行命令提示符(cmd)

配置开机自启动

sc config sshd start= auto

启动SSH服务端

net start sshd

尝试用SSH连接本机测试SSH功能是否可用 格式为 本机登录用户名@本机IP

ssh XXX@XXX.XXX.XXX.XXX

输入密码后,输入yes即可连接,到这一步证明SSH正确工作。连接成功后在命令行首部出现User@Host的形式。输入exit指令可中断连接。

虚拟机

1.SSH配置

打开终端,输入命令安装SSH客户端

sudo apt-get install openssh-client

如图,输入登录用户密码验证后即可下载,图中情况表示SSH已经安装且无需更新。

同理更新源列表、安装SSH服务端

sudo apt-get update

sudo apt-get install openssh-server

SSH服务端已经安装且无需更新。

输入命令启动SSH服务

sudo service ssh start

检查当前SSH服务工作状态

sudo service ssh status

其中active状态为running则表示SSH正常工作,否则建议重装SSH。输入Ctrl+z回到终端命令行。

接下来修改SSH配置文件,建议使用vim编辑器

sudo apt-get install vim

SSH安装后默认无法远程登陆Root用户以及密码身份验证,需要手动配置。

配置ssh_config

sudo vi /etc/ssh/ssh_config

在vim编辑器中,将PasswordAuthentication行前#删去,将no改为yes,文字高亮即为修改成功,输入:wq保存并退出。

配置sshd_config

sudo vi /etc/ssh/sshd_config

在vim编辑器中,找到PermitRootLogin,与上述方法相同,no改为yes,输入:wq保存并退出。

2.关闭防火墙

输入指令查看防火墙状态

sudo ufw status

未加载中文模块的系统显示inactive即为不活动。(并非未安装)

关闭防火墙

sudo ufw disable

可以输入指令使得防火墙开启时保留部分端口用于其他设备远程SSH连接,此处不再赘述。

完成配置后可以重启SSH服务,保证配置生效

/etc/init.d/ssh restart

Remote-SSH

1.连接确认

根据双方IP地址,在各自的终端的命令行中互ping,检查对方是否可以被连接。

如图为ping指令成功。

注意Ubuntu中需要Ctrl+z结束ping。

2.连接

打开VSCode,Ctrl + Shift + P,搜索SSH,选择Remote-SSH Setting。

勾选这一项

在左侧栏目点击Remote Explorer

Remote Explorer选择Remote

点击SSH后的加号

在输入框中输入ssh远程系统的地址,即

ssh 登陆用户名@192.168.XXX.XXX

比如:

ssh root@192.168.0.0

注意,Linux系统中用户名不区分大小写,如果用户名为AAA,则实际为aaa,实际用户名以Linux系统终端命令行首部的用户名为准。

由于前述内容配置了PermitRootLogin,此处可以登录root用户。

输入后Enter,选择第一个。

出现如下弹框则为配置成功

点击右侧任意按键即可连接,箭头为当前窗口打开,后者为新窗口打开。

选择Linux

输入密码后Enter,首次登陆需要输入一个yes

出现如下界面即认为连接成功,且此时左下角将显示[SSH:IP]。

使用VSCode打开文件夹,查看是否为虚拟机的文件系统,如果是则连接成功,可以通过当前方法操纵虚拟机。

备注

VSCode Remote-SSH插件将当前ssh连接的config文件保存在C盘User文件夹.ssh文件夹中,如果.ssh文件夹权限不足,则可能报错:过程试图写入的管道不存在。需要修改,ssh文件夹的权限,赋予当前登录用户完全权限。 右击.ssh文件夹,属性,点击安全栏,编辑登录用户的权限,将”完全权限“项目允许。

本文将继续更新VSCode Remote-SSH的相关问题。

精彩链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: