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

 

現在你就可以愉快地在線編程了~~

什麼?? 還連不上??? 還需要密碼???

就這樣吧!! 手機沒油了!! 再見!!

 

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