vscode通过跳板机连接远程服务器
vscode通过跳板机连接远程服务器
使用背景
一般实验室等环境的服务器是设置在内网环境中的,无法直接使用笔记本在公共环境下直接连接。但是由于种种原因,会出现在这样的场景下需要连接服务器的需求,而通过跳板机是一种常见的办法。
一般通过ssh先后连接跳板机再跳转至服务器的方法,在编程时仅能通过vim等工具使用命令行环境,十分不方便。
本文在vscode的环境下,通过跳板机连接到远程服务器,从而实现在服务器编写程序时,与在本地vscode编程环境一样便捷的效果。
准备工具
- vscode (自行安装,不赘述)
- ssh (windows自带的可能版本过低,推荐下载使用openssh,或者在电脑中安装git的话,也可以使用git自带的ssh)
配置步骤
在vscode的扩展中安装
Remote - SSH
插件在安装中的插件中,选择
Configure
,然后选择config文件,如下填写Host JumpMachine #跳板机名称 HostName XXX.XXX.XXX.XXX #跳板机IP Port XXX #跳板机ssh端口 User root #跳板机用户名 Host TargetMachine #远程服务器名称 HostName XXX.XXX.XXX.XXX #远程服务器IP Port XXX #远程服务器ssh端口 User root #远程服务器用户名 ProxyCommand ssh -W %h:%p JumpMachine
注:
ProxyCommand
中的ssh
换成准备工具中安装的ssh的地址,例如C:\Windows\System32\OpenSSH\ssh.exe
由于ssh连接时需要密码,连接时输入密码太过繁琐,因此可以将笔记本电脑的公钥发送至跳板机和远程服务器上
3.1 若电脑上没有秘钥,可以首先先生成一个公钥秘钥对
ssh-keygen -t rsa -b 4096
并根据提示找到秘钥的生成位置,如
C:\Users\XXXssh
目录下,并切换到该目录下3.2 为防止发送公钥时覆盖了目标机器上的
authorized_keys
文件,可以使用ssh-copy-id
命令来复制公钥ssh-copy-id -i id_rsa.pub "-p 跳板机ssh端口 用户名@跳板机IP"
3.3 将笔记本的公钥也同样的发送到远程服务器中
可以先使用scp将公钥发送至跳板机
scp -P 跳板机ssh端口 id_rsa.pub 跳板机用户名@跳板机IP:~/.ssh/temp
再通过ssh连接至跳板机,并切换到
~/.ssh
目录下,将其发送至远程服务器scp -P 远程服务器ssh端口 temp 远程服务器用户名@远程服务器IP:~/.ssh/temp
最后通过ssh连接至远程服务器,切换到
~/.ssh
目录下,手动将公钥拼接到authorized_keys中cat temp >> authorized_keys
此时就大功告成了,可以打开vscode中的
Remote-SSH
扩展,在左边文件栏中
SSH TARGETS
就会看到前面配置的
JumpMachine
和
TargetMachine
,选择
TargetMachine
进行连接即可完成远程使用vscode进行编程,第一次打开会在远程服务器中安装一些远程工具,可能会花费一些时间