共计 2049 个字符,预计需要花费 6 分钟才能阅读完成。
相信大部分同学都有使用过 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.0.xxx can't be established.
这个错误,可以选择加上 -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),回车。
顺利的话,那么已经可以开始远程开发工作了。
其它
预祝使用愉快。
轻拍【滑稽】。。。
参考
- Developing on Remote Machines using SSH and Visual Studio Code
- Visual Studio Code Remote Development Troubleshooting Tips and Tricks
- vscode 远程开发 | 葉子
- 安装适用于 Windows 的 OpenSSH | Microsoft Docs
- Ubuntu 安装远程登录 OpenSSH 服务_Linux 教程_Linux 公社 -Linux 系统门户网站
- Mac 上玩 Linux(三)使用 SSH 连接 Ubuntu – 简书