Remote SSH
有些代码我们需要在服务器上跑,但是debug有点复杂, 这时,我们可以使用VScode 的 Remote SSH 这个拓展来实现在本地直接debug服务器上的程序, 从而提升开发体验。
问题描述
我需要用先连接到一个跳板机然后再去访问内网的服务器: local -> server_A -> server_B
.
local
的操作系统是win10
server_A
和server_B
的操作系统都是linux
.
为了方便日常工作, 我们使用SSH公钥连接
.
配置SSH公钥
在本地,我们先使用 ssh-keygen
生成一个对私钥和公钥
# git bash
$ ssh-keygen -t rsa -b 4096
$ ls
id_rsa id_rsa.pub
我们把id_rsa.pub
里的内容复制到server_A
和server_B
的~/.ssh/authorized_keys
文件中(如果没有请新建)。
配置本地~/.ssh/config
在vscode中我们点击新生成的连接按钮, 如果没有config文件的话回出现下面的选项, 然后点击configure就行啦~
按照如下的例子编写就行。
Host server_A
HostName 128.xxx.xxx.xxx #跳转用的机器
Port 8088 #对应的端口
User user_sever_A #username
IdentityFile ~/.ssh/id_rsa #根据所用bash改成给对应的格式吧, 指向私钥位置
Host server_B
HostName 10.xx.xx.xx
Port 22
User user_sever_B
ProxyCommand ssh user_server_A@server_A -W %h:%p # 如果报错使用下一行
#ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe user_server_A@server_A -W %h:%p
IdentityFile ~/.ssh/id_rsa
如果使用windows可能有错误,那么就使用加注释的那一行ProxyCommand
然后就能成功的从vscode上访问远程服务器了,按照提示在远程服务器中装上vscode的python拓展就可以远程debug了, 非常舒适~
good luck