对于vscode近期升级的一大功能非常满意,通过Remote Development实现远程开发功能,而且使用体验非常好,美中不足是有小部分插件在服务器端支持得不是太好。在搭建过程中会对一些知识进行简单扩展,如不喜可以直接看操作。
看着这架构图都觉得很爽,有关更多内容请看官网教程Remote Development using SSH
由上面框架图可知远程开发是基于SSH协议进行,因此我觉得很有必要对SSH做些了解。
简介引用他人,详情SSH简介及两种远程登录的方法里面有更详细的说明
本人的服务器是本地部署的一个Ubuntu服务器,通过Windows 10本地对服务器上代码进行远程开发。
Windows 10下面的Vscode,打开插件标签栏输入插件名称
Remote Development
注意找到红框中显示插件进行安装,安装完后需要重新加载窗口才生效
根据自己对应信息进行填写即可
由于没有对公钥进行配置,这种登录方式需要密码进行登录
通过SSH简介知道协议的加密是通过RSA非对称加密,因此会有公钥与私钥。密钥形式登录的原理是:利用密钥生成器制作一对密钥——一只公钥和一只私钥。将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。这样一来,没有私钥,任何人都无法通过 SSH 暴力破解你的密码来远程登录到系统。此外,如果将公钥复制到其他账户甚至主机,利用私钥也可以登录。按照当前实际搭建情况如下图所示:
密钥的生成可以通过Windows 10生成,也可以通过Ubuntu服务器生成,只要遵循简介中的架构模式即可,这里介绍通过Ubuntu生成方式。
ssh-keygen
Enter file in which to save the key (/home/andron/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/andron/.ssh/id_rsa. =>私钥
Your public key has been saved in /home/andron/.ssh/id_rsa.pub. =>公钥
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
ls =>查看确保生成功authorized_keys
sudo chmod 600 authorized_keys
sudo chmod 700 ~/.ssh
sudo vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
默认不需要修改配置
PasswordAuthentication no
修改这设置需用密钥登录成功后修改,是否禁止密码登录根据个人需要而定
sudo service sshd restart
因为生成的密钥是通过服务器Ubuntu生成的,因此需要把生成的私钥复制Windows 10上面,从Ubuntu复制文件到window可以通过Samba方式或者WinSCP工具实现,Samba方式请参考《Ubuntu 安装Samba及配置》,本文简单介绍通过WinSCP实现文件拷贝。
可以看到都是存放在用户目录下面,需要注意是都是隐藏文件
如果windows之前已经存在私钥和公钥,只需要把公钥安装到服务器上即可