1.打开vscode congfig文件,输入相应信息如下图
若本地没有id_rsa文件,可打开cmd进入.ssh目录下输入命令:ssh-keygen,创建该文件,会提示输入该文件保存地址以及设置秘钥密码(最好不要设置密码,不然不方便免密登录,直接按回车键生成密钥),按需输入即可;详细方法见博客vscode通过跳板机远程服务器
生成密钥和公钥后在.ssh文件目录下会出现两个文件
2.实现免密连接远程服务器
首先将私钥地址填写到vscode本地config文件其对应连接的服务器ip下面,比如服务器ip为192.168.1.170
Host 192.168.1.191
HostName 192.168.1.170
User dell
IdentityFile "C:\Users\hc\.ssh\id_rsa" #添加这一行为本地私钥路径
然后将公钥(带有.pub的那个文件)内容copy到服务器上.shh文件夹下authorized_keys文件中,推荐使用git命令(前提是本地安装有git),在本地.ssh文件目录下,鼠标右击Git Bash Here弹出Git命令框,输入命令:
ssh-copy-id dell@192.168.1.170
ssh-copy-id username@server_ip username是目标服务器的用户名,@后面是目标服务器的ip地址。
不用Git命令可以直接用记事本打开这些文件复制其内容粘贴到服务器上对应的文件中。
到此即配置完成,可以用vscode直接连接192.168.1.170服务器上的代码文件,不用输入密码。
3.直接通过跳板机免密远程连接云服务器上的文件
首先可以将跳板机当做另一台本地的服务器,所以进入跳本机的的.ssh目录下生成一个属于跳板机的私钥和公钥(如果已经存在则不用生成)。
然后将跳板机的的私钥id_rsa复制到本地.ssh文件下,为避免对本地的私钥造成影响,复制到本地时可以重命名,如我的跳板机用户名是gpu,那就改成gpu_id_rsa。
最终本地.ssh文件下内容如下:
再然后需要将本地的公钥也复制到跳板机的authorized_keys文件中,方法和2.中相同。在vscode的config文件中同时需要配置一下跳板机相关的配置
Host 140.143.229.170 #跳板机
HostName 140.143.229.170
Port 22
User gpu
IdentityFile "C:\Users\hc\.ssh\id_rsa" #本地的私钥地址
此时用vscode即可以免密连接跳板机上的文件了;
最后再配置云服务器:
首先将跳板机的公钥采用相同的方法复制到云服务器上.ssh文件下的authorized_keys文件中保存,然后再配置vscode中的文件如下:
Host 140.143.229.170 # 跳板机
HostName 140.143.229.170
Port 22
User gpu
IdentityFile "C:\Users\hp280\.ssh\id_rsa"
Host TargetMachine # 目标云服务器,(名字自取)
HostName 10.170.9.20 # 云服务器的ip
Port 22
User ubuntu # 云服务器用户名,
IdentityFile "C:\Users\hc\.ssh\gpu_id_rsa" # 此时配置的是先前从跳板机上复制下来的私钥在本地的路径
ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -W %h:%p 140.143.229.170 # 最后将云服务器关联到跳板机
到此配置完成。