1、安装vscode,ssh
2、添加插件:Remote - SSH
3、配置远程机器
添加远程机器地址:
其中:
Host 自定义远程服务器名称
HostName 远程服务器IP或域名
Port 远程服务器ssh连接端口
User 远程服务器登录用户
ProxyCommand 本机登录跳板机的命令: ssh -p 跳板机ssh端口 跳板机User@跳板机HostName -W %h:%p 2> /dev/null
4、连接远程服务器项目
实现从本地开发电脑(win10)的vscode直接开发远程服务器代码
选择远程服务器上的目录:
如果报错:
...
[20:50:57.334] > CreateProcessW failed error:2
>
[20:50:57.344] > posix_spawn: No such file or directory
> 过程试图写入的管道不存在。
>
...
解决:
将配置文件里的ssh改为ssh.exe:
ProxyCommand ssh.exe -p 跳板机ssh端口 跳板机User@跳板机HostName -W %h:%p 2> /dev/null
5、设置免密登录
如果没有进行免密登录配置,每次连接时,都会需要输入跳板机密码,然后输入远程服务器密码。下面进行免密配置:
(1)在本地开发电脑(windows)cmd窗口
生成秘钥:ssh-keygen -t rsa -b 4096
并根据提示找到秘钥的生成位置,如C:\Users\XXX\.ssh目录下,并切换到该目录下,生成了秘钥文件id_rsa.pub和rd_rsa.pub。我这里为了避免重复,将rd_rsa.pub重命名为rd_rsa.pub.1
(2)免密登录跳板机
将id_rsa.pub发送到跳板机:
ssh-copy-id -i id_rsa.pub.1 “-p 跳板机ssh端口 用户名@跳板机IP”
或者通过xshell进行传输。
登录跳板机,到~/.ssh/目录下将公钥添加到authorized_keys
这样,vscode打开远程文件夹时,就不会再提示输入跳板机密码。
(3)免密登录远程服务器
在跳板机终端将windows的公钥文件发送到远程服务器
scp -P 22 id_rsa.pub.1 root@远程服务器ip:~/.ssh/
通过ssh登录远程服务器,到~/.ssh/目录下将公钥添加到authorized_keys:
cat id_rsa.pub.1 >> authorized_keys
跳板机输入ssh-keygen -t rsa
把跳板机的id_rsa.pub文件传到远程服务器,并在远程服务器上运行cat id_rsa.pub >> ~/.ssh/authorized_keys
【重要】所有前序机器的id_rsa.pub都要添加到最终机器上。比如说有3台机ABC,其中B是跳板机。那么A的.pub要在B跟C上分别导入一次,B的.pub要在C上导入一次,共3次
这样,vscode打开远程文件夹时,就不会再提示输入远程服务器密码。
完成配置。