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的相关问题。