VScode远程开发指南
先给出最直接的配置方法:
- 先在桌面git bash,输入ssh-keygen -t rsa -b 4096;
- 打开 .ssh文件夹,用记事本打开id_rsa.pub文件,复制里面的数据;
- 用vim打开服务器的 .ssh/authorized_keys文件,直接粘贴刚刚复制的数据即可。
- 大功告成。
1. 客户端ssh配置
-
首先看服务器(虚拟机)是否开启ssh服务,是否已经进行简单配置
ssh -V //查看是否开启了ssh服务,若没有,安装好再说; ssh localhost; //初始化ssh服务,这时候就可以看到ssh相关文件在 /.ssh 目录之下了 然后查看一下/.ssh ,看看里面有哪些文件,理论上应该有 authorized_keys等文件
-
在windows下,桌面打开git bash,执行命令
ssh-keygen -t rsa -b 4096
连敲三次回车(不需要那些不必要的设置),然后就可以看到在如下文件夹中有密钥id_isa和公钥id_rsa.pub这两个文件。
-
将公钥id_rsa.pub通过xftp发到服务器(虚拟机)上面,我这里是放在 ./ssh 目录下
-
将公钥文件写到authorized_keys中,方便以后直接连接,不需要频繁输入密码了。用命令:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
到这一步,二者已经完成了公钥私钥的配对设置,以后就不需要频繁输入密码了。
2. 配置vscode
-
下载插件remote-ssh,然后点击如下配置文件
点开之后,写下如下配置语句,host和hostname都填IP地址,保存退出即可。
-
配置完之后,每次打开VScode都不需要重复输入密码了,效果如下图。
3. ssh免密登录原理
-
ssh(Secure Shell),通过加密算法将需要传输的数据进行处理后,通过TCP传输,在两端之间通过密文交互达到安全目的,所以其本质是数据加密。目前ssh有两个版本,ssh1使用非对称加密算法(RSA),使用循环冗余校验(CRC)来保证传输数据的完整。SSH2则使用了新的对称加密算法和使用散列值(HMAC)算法替代CRC,保证数据传输完成。
-
ssh认证方式
- 账号密码登录,常用简单;
- 公钥验证授权登录,较复杂,但是方便后续操作。
-
免密本质:如果把输入密码比作拿钥匙开门,那么免密登录就相当于刷脸或者刷指纹登录。而刷脸操作是在此之前已经在开门认证的可信任数据库中记录下来,在录下来之后才可以体会到不需要用钥匙的快感了。所以,免密登录的前提就是远端的服务器能够认识你的机器,而你的机器“刷脸”进门就需要把它的脸(公钥)放到远端的服务器的可信列表中。
-
实现过程:
-
生成自己机器的公钥 ——> 将自己的公钥放到远程机器下。
-
生成公私钥,是一对。
ssh-keygen -t rsa -C "your_email@gmail.com"
-
将本地自己的公钥上传到远程服务器的用户信任列表中
ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.137.101
-
查看远程服务器可信任列表,是否有本地自己的机器名。
cat ~/.ssh/authorized_keys
-
免密登录 ssh user@192.168.137.101
-
别名设置,在vscode中的ssh配置文件中找到Host,填写一个容易记住的名字即可。注意,如果在都配置好之后还想不要轻易修改Host名字,不然直接连接不上,整个需要重新配置。如果不小心改动了配置,再将Host改成之前的就行了,所有操作就会像之前的一样了。所以,要是想修改自己的Host,就需要在第一次修改时候改变。🙂
-
-
认证原理
-
密码(口令)认证
-
免密登录(密钥)认证
-
两种方式比较:
第一种方式更简单,更快,但是不安全。因为不能完全保证所连接的机器就是你想要连接的机器,存在 “ 中间人攻击 ”的风险。
第二种方式更安全。
后记:VSCode真香😏
-
快,但是不安全。因为不能完全保证所连接的机器就是你想要连接的机器,存在 “ 中间人攻击 ”的风险。
第二种方式更安全。
后记:VSCode真香😏