做一个有温度和有干货的技术分享作者 —— Qborfy
背景
VScode是前端开发最受欢迎的IDE工具之一, 里面的插件市场十分丰富,插件有个插件叫Remote - SSH,其主要功能介绍如下:
Visual Studio Code 远程 - SSH 扩展允许你在任何远程计算机、虚拟机或具有正在运行的 SSH 服务器的容器上打开远程文件夹,并充分利用 VS Code 的功能集。连接到服务器后,您可以与远程文件系统上任何位置的文件和文件夹进行交互。
因此,我们可以直接连接远程服务器去做很多事情:
- 搭建云端个人开发机, 从而使得所有无论更换本地环境,都不会影响个人开发进度
- 更加友好的可视化文件管理,包括一些简单的文件编辑等等
- 使用SSH登录,能更好更安全的避免密码泄漏
下面还是以【如何搭建个人远程开发机】作为案例去学习
如何搭建个人远程开发机
步骤一 安装 Remote-SSH插件
在VSCode的插件市场中,查询【Remote-SSH】,然后进行安装,具体如下图:
步骤二 配置远程服务器
打开SSH配置界面,具体如下图:
编辑SSH配置文件
~/.ssh/config
,路径和上述文件路径保持一致,具体代码如下:1
2
3
4
5
6
7
8
9
10
11##
## Host 远程连接名称
## HostName 主机IP
## User 连接帐号
## Port 连接SSH端口
##
Host self_remote_host
HostName 10.11.67.18
User root
Port 22
完成步骤一,基本上就可以连接远端服务器,不过每次都要输入密码有点麻烦,所以可以通过SSH密钥认证去解决,具体如下步骤
步骤二 本地生成SSH密钥,进行免密登录
不同操作系统,执行命令不太一样,具体如下。
- Mac | Linux操作系统
1
2默认会在相应路径下(~/.ssh/)生成id_rsa和id_rsa.pub两个文件,如下面代码所示
ssh-keygen -t rsa -C "your_email@example.com"
id_rsa
SSH私钥文件,用来解密公钥,一般存在本地使用id_rsa.pub
SSH公钥文件,用来传输信息的时候加密用, 一般存在远端服务器
- Windows操作系统
安装Git Bash,执行如下命令即可:接下来就是将公钥1
2默认会在相应路径下(C:\Users\yourname\.ssh)生成id_rsa和id_rsa.pub两个文件,如下面代码所示
ssh-keygen -t rsa -C "your_email@example.com"id_rsa.pub
复制到远端服务器上~/.ssh/
目录下即可
- 将公钥
id_rsa.pub
添加到远端服务器中可信任文件中authorized_keys
,具体命令如下:
1 | cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys |
验证登录:ssh <user>:10.1.1.1
- 配置VSCode SSH config文件,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13##
## Host 远程连接名称
## HostName 主机IP
## User 连接帐号
## Port 连接SSH端口
## IdentityFile 认证登录的SSH密钥文件
##
Host self_remote_host
HostName 10.11.67.18
User root
Port 22
IdentityFile ~/.ssh/id_rsa
SSH免密码登录原理
- SSH远端服务会发送【公钥(remote)】信息
- 本地SSH客户端会验证远端传输来的【公钥(remote)】和 本地【公钥(local)】对比是否一致,如果一致,发送【随机字符串(challenge)】给到远端服务器
- 远端服务器接受到随机字符串(challenge)信息后,继续用【公钥(remote)】加密传输信息-随机字符串(challenge)给回到客户端
- 本地SSH客户端用本地【私钥(local)】去解密【公钥(remote)】加密传输信息-随机字符串(challenge),如果与之前一致,则建立连接