vscode通过跳板机(堡垒机)连接remote服务器

先吐槽: 

      搞了一上午!!! 我太难了!!! 最近服务器不够用, 就差动手算深度学习梯度了!!! 向本科朋友借了几台机子跑, 这要是没上过大学, 研究生还不能毕业了呢!!!

目录

1. 简单任务介绍

2. 本机的配置

3. 跳板机的配置

4.内网服务器的配置

5. 怎么样不需要密码访问嘤嘤嘤~~

1. 简单的任务介绍:

我现在用的电脑叫做A, 然后借了一台服务器叫做C, 不过C在内网, 没有公网ip, 我现在A直接连C是连不上的, 解决方法就是用一个有公网ip的服务器B, 然后A连B, B连C, 这样就A间接连了C, B就叫做跳板机, 跳板机怎么搞自己搜吧, 哪个都比我懂得多.

现在的问题是:

我怎么用vscode的remote服务连接C, 这样我就可以"性感程序员, 在线编程了!!!"有木有, 好了废话不多说, 进入正题.

 

2. 本机的配置

2.1 我要最新版本的openssh !!!!

首先你的电脑A要有个最新的openssh, 这个连接下载, 如果电脑A是64位就下载OpenSSH-Win64.zip

https://github.com/PowerShell/Win32-OpenSSH/releases/tag/v8.0.0.0p1-Beta

下载之后解压, 里面有个ssh.exe就对了, 咱们将这个ssh.exe的目录(只是目标, 不包括ssh.exe)添加到环境变量, 如果之前环境变量里面有另外一个ssh, 就要删了哦!!!

*****其实这一步主要是防止bug, 现在windows10都自带ssh, 不过低版本的ssh有很多bug, 这个8.0版本是19年6月发布的, 但是10月又发布了一个8.1, 当时没有找到下载位置, 不过如果你电脑装了最新版的github, 在git/usr/bin目录下也有个ssh.exe, 就是8.1版本的, 其实这一步先不弄也行, 就是后期不行再来改. 可以在cmd.exe中查看ssh的版本:ssh -V, 不要低于8.0, 另外也可以用where ssh, 查看当前ssh的路径*****

2.2. 密钥问题

机器A要生成密钥, 将公钥放在服务器B和C上(我没有测试过是否B需要公钥, 加上也不浪费时间是吧)

能够找到这篇文章的, 我相信也不需要我告诉你怎么生成密钥and放到服务器上吧~~~~

算了我还是告诉你吧~~

.本地cmd窗口生成, 在cmd.exe中
    ssh-keygen -t rsa -b 4096(回车三连击, 不要输入任何东西, 
    生成的信息里会告诉密钥在哪(一般在C:\Users\用户名\.ssh下), 
    把id_rsa.pub复制到服务器home/用户名/.ssh文件夹下, 
    并执行cat id_rsa.pub >> authorized_keys(就是把公钥追加到au..里面去, au..是公钥集合..)

2.3. 配置vscode

机器A安装remote插件, 然后打开配置config, 格式就这样写:

Host jump #跳板机, 名字随便起个
    HostName 111.111.111.111 #跳板机ip 
    Port 6987 #跳板机ssh端口
    User uu #跳板机用户名

Host CCCC #内网C主机, 名字随便起个
    HostName 10.20.20.20 #内网ip
    User mm #内网用户名
    ProxyCommand ssh -W %h:%p jump  #最后的jump就是上面第一句你写的名字

****其实有很多坑, proxycommand 后面花里胡哨的写法, 我这个只要配置了最新的ssh, 就没问题啦

 

3. 配置跳板机

跳板机就是简单的创建个.ssh文件夹在用户目录下, 将A的公钥放进来, 记住要改个名字authorized_keys, 如果已经有了, 将公钥复制贴到此文件下一行保存

 

4. 内网机器的配置

和步骤3一样, 将A的公钥放进来

 

5. 怎么不要密码

5.1 更改sshd_config B和C操作相同

sudo vim /etc/ssh/sshd_config

PubkeyAuthentication yes

PermitEmptyPasswords yes

对就改成这样 保存, 然后重启ssh

ubuntu重启: service sshd restart

centos重启: sudo service sshd restart

5.2 更改文件权限

如果还需要密码 一个常犯的错误是文件权限不对

 .ssh设置成 0700

authorized_keys 0644

 

用cmd.exe测试一下啊

也可以通过cmd, 使用命令来测试一下

ssh -T CCCC, 回车之后, 如果第一次连接, 可能需要安装点东西, 按照提示输入yes什么的就可以了,

进去之后 输入个pwd命令, 看看是否进入到了用户目录, 对了那个CCCC就是你的config配置的远程服务器的名字

另外你还可以在cmd.exe通过scp C:\da.txt CCCC@/home/pp/xiao.txt 来传输文件哦, da.txt是你要传的文件. xiao.txt就是接收文件, 也就是相当于da.txt就赋值给xiao.txt了, xiao.txt不用提前创建

如果还有什么bug, 你可以仔细看看他返回的信息是什么, 如果之前的你都准确完成了, 基本上没有大问题了.

记住vscode如果配置完连不上, 尝试重启一下vscode

 

现在你就可以愉快地在线编程了~~

什么?? 还连不上??? 还需要密码???

就这样吧!! 手机没油了!! 再见!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章