zl程序教程

您现在的位置是:首页 >  工具

当前栏目

vscode配置远程项目开发

2023-09-11 14:19:19 时间

0. vscode中安装remote development插件

(略)

 

 

1. 客户端进行配置

按键:ctrl+shift+p 

在输入框中输入:

Preferences: Open User Settings 

进入选项:

 

 

 

 

 

 

在新打开的输入框中输入:ssh

 

 

然后我们在Remote.SSH: Config File中填写ssh的配置文件路径,这里我们可以自由设置,我这里的设置是将其保存在OneDrive中,这样便能保证在不同的windows主机上都能通过相同用户名登录而读取到这个配置文件。

 

 

-----------------------------------------------------------

 

 

我们可以手动的打开刚才的配置文件,也可以再vscode中将其打开:

键盘按键:

Ctrl+shift+p

在输入框中输入:

ssh configuration file

 

 

 

打开ssh配置文件后对远程主机相关信息的填写:

 (大致形式如下:)

 

 

相关参数介绍:

Host            对该条配置的命名,最后在vscode中以该名称对该配置进行查询;

HostName   远程主机IP地址;

User             远程主机上的用户名;

Port              远程主机上的端口;

ForwardX11  和  ForwardX11Trusted  和 ForwardAgent    本地主机的vscode客户端是否接受远程主机的X11转播(可以在本地打开服务器端部分的GUI界面);

IdentityFile     rsa加密的私钥(private key),保存在vscode本地的,远程主机上需要存放public key;

UserKnownHostFile   本地vscode对可登录的远程主机的记录信息,这里只需要给出一个地址即可,我这里依然保存在OneDrive中,该参数的设置可以在每次连接同一主机是不需要点击信任该远程主机(因为已经记录过),相关:https://www.codenong.com/1655815/。有这个UserKnownHostFile,那么只要远程主机IP地址不换,那么每次连接都不需要点击信任该远程主机。

Host 实验室台式机
  HostName 10.105.211.147
  User devil
  Port 22
  ForwardX11 yes
  ForwardX11Trusted yes
  ForwardAgent yes
  IdentityFile C:\Users\81283\OneDrive\.ssh\id_rsa_lab
  UserKnownHostsFile C:\Users\81283\OneDrive\.ssh\known_hosts

 

配置完成后可以在vscode上看到对应的SSH远端的对应项,但是此时还没有实现免密码登录:

 

 

 

 

===============================================

 

 

 

VSCODE的官方HELP文档:

Remote Development Tips and Tricks

 

 

 

客户端的权限设定:

 

 

 

 

服务器端的权限设定:

 

 

 

 

客户端上的代理参数设置:

参考:

 https://www.cyberciti.biz/faq/linux-unix-ssh-proxycommand-passing-through-one-host-gateway-server/

使用SOCKS代理:

Host 实验室台式机(192.168.11.241)
  HostName 192.168.11.241
  User devil
  Port 22
  ForwardX11 yes
  ForwardX11Trusted yes
  ForwardAgent yes
  IdentityFile C:\Users\81283\OneDrive\BaiduSyncdisk\.ssh\public_private_key\id_rsa_private_key
  ProxyCommand ssh -W %h:%p 192.168.11.111:1080

主机跳板:

Host aaabbbccc
  HostName 192.168.11.111
  User devil
  Port 22
  ForwardX11 yes
  ForwardX11Trusted yes
  ForwardAgent yes
  IdentityFile C:\Users\81283\OneDrive\BaiduSyncdisk\.ssh\public_private_key\id_rsa_private_key



Host xxxyyyzzz
  HostName 192.168.11.241
  User devil
  Port 22
  ForwardX11 yes
  ForwardX11Trusted yes
  ForwardAgent yes
  IdentityFile C:\Users\81283\OneDrive\BaiduSyncdisk\.ssh\public_private_key\id_rsa_private_key
  ProxyJump devil@aaabbbccc:22

采用该种形式,虽然目标主机为xxxyyyzzz,但是在实际连接过程中会以主机aaabbbccc作为中间跳板。这里需要注意的是在配置ProxyJump参数时,主机名写的是vscode中自定义的别名,具体如上面的配置格式。参考:https://www.cnblogs.com/mykaneki/p/16750157.html

 

 

 

-----------------------------------------------------------------------

 

 

vscode 远端开发的免密登录: 

vscode端(假设为windows主机)在刚才配置文件中的IdentityFile参数填写秘钥(private key)的保存地址;

远程主机端(假设为ubuntu系统)在用户home路径下面的.ssh文件中的authorized_keys文件中添加公钥(public key)信息;

公钥和秘钥的生成我们可以在windows主机上操作,也可以再ubuntu主机上操作。如果是在windows主机上操作,那么就需要把公钥传输给ubuntu主机,并保存到authorized_keys文件中;如果是ubuntu主机上操作,就需要报私钥传输给windows主机,并保存在刚才配置的IdentityFile参数对应的路径下面。

将公钥信息保存到authorized_keys文件中:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

 

RSA公钥和秘钥的生成:

ssh-keygen -t rsa

 

 

 

 

Tips:

公钥和秘钥生成后最好可以重命名,因为默认的命名容易被再次生成的RSA秘钥对覆盖掉,尤其是windows端的私钥(private key)。

 

 

配置vscode客户端和远程主机的RSA的免密通信时,一定要注意,远程主机端保存的是公钥,vscode端保存的是私钥,公钥需要写入到~/.ssh/authorized_keys文件中,私钥路径需要配置到vscode上的IdentityFile参数中。

 

 

 

------------------------------------------------------------------