相信大部分同学都有使用过 Visual Studio Code
这个编辑器,它提供的 Remote - SSH
扩展允许我们在任何远程计算机、虚拟机或运行 SSH 服务器的容器上打开远程文件夹,并充分利用 VS Code
的功能集。
当我们连接到服务器时,就可以与远程文件系统中的任何位置的文件和文件夹进行交互,就像在操作本机一样。
这很酷,而且很有用。
准备工作
搭建前的环境。
- 一台安装了
Windows 10 18362.418
系统的电脑。 - 一台安装了
Ubuntu 18.04 LTS
系统的电脑。
当然你都可以在虚拟机上安装它们,如果是学习的话这也是推荐的做法。
在本次搭建过程中选择了以 Ubuntu
作为服务端。
在 Windows 上通过 PowerShell 安装 OpenSSH
使用 PowerShell
安装 OpenSSH
,首先以管理员身份启动 PowerShell
。 若要确保可以安装 OpenSSH
功能,先执行以下操作:
# command
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
# This should return the following output:
Name : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
如果显示的是 State
不是 NotPresent
而是 Installed
, 那么表示已经安装了。否则继续,安装客户端功能:
# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
# should return the following output:
Path :
Online : True
RestartNeeded : False
在 Ubuntu-18.04 上安装 OpenSSH
可选的更新一下软件列表:
$ sudo apt update
安装 SSH server:
$ sudo apt install openssh-server
查看是否启动:
$ service ssh status
如果没有启动则手动启动:
$ service ssh start
配置 SSH
在 Windows
上生成新的 SSH 密钥:
$ ssh-keygen -t rsa -b 4096
接下来为远程主机设置基于 SSH 密钥的身份验证,需要执行以下命令:
rem 按提示替换 REMOTEHOST 的值,形如:username@IP
SET REMOTEHOST=your-user-name-on-host@host-fqdn-or-ip-goes-here
scp %USERPROFILE%\.ssh\id_rsa.pub %REMOTEHOST%:~/tmp.pub
ssh %REMOTEHOST% "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat ~/tmp.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && rm -f ~/tmp.pub"
如果遇到 The authenticity of host 192.168.xxx.xxx can't be established.
这个错误(通常我们在为 Github 新添加密钥后,第一次克隆仓库时会遇到相似的提示),你可以根据提示进行确认,就像是这样:
Are you sure you want to continue connecting (yes/no)?yes # 输入 yes 后回车
或者,你也可以选择加上 -o StrictHostKeyChecking=no
参数。也就是说,对应的上面第四行应该改成下面的格式:
scp -o StrictHostKeyChecking=no %USERPROFILE%\.ssh\id_rsa.pub %REMOTEHOST%:~/tmp.pub
安装 VS Code 和扩展 Remote Development
前往 Download Visual Studio Code - Mac, Linux, Windows 下载并安装(仅需要在 Wondws 上安装),安装的步骤比较简单,这里就不细说了。
安装完成后在扩展程序中搜索并安装 Remote Development
插件。
插件安装完后左下角会出现一个绿色的图标,点击选择会在命令窗口弹出几个选项,在下拉选项中选择 Remote SSH:Connect to Host
。
然后在新的输入框中输入远程用户和 IP 地址(格式:your-user-name-on-host@host-fqdn-or-ip-goes-here),回车。
顺利的话,那么已经可以开始远程开发工作了。
其它
预祝使用愉快。
轻拍【滑稽】。。。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。