使用 Visual Studio Code 進行遠程開發

来源:https://www.cnblogs.com/abatei/archive/2019/12/28/12112741.html
-Advertisement-
Play Games

使用 Visual Studio Code 進行遠程開發 在完成了 AT 指令入門的學習之後,接下來就要使用 AT 指令進行 Socket 通信了。問題在於,之前 .NET 的 Socket 編程只需一臺電腦便可進行學習,伺服器和客戶端都可以在本機運行,也可以分別運行在區域網上的兩臺電腦之上。而 N ...


使用 Visual Studio Code 進行遠程開發

在完成了 AT 指令入門的學習之後,接下來就要使用 AT 指令進行 Socket 通信了。問題在於,之前 .NET 的 Socket 編程只需一臺電腦便可進行學習,伺服器和客戶端都可以在本機運行,也可以分別運行在區域網上的兩臺電腦之上。而 NB-IOT 晶元的信號是直接發送到手機機站上的,個人電腦都是在區域網環境下運行的,沒有公網 IP,手機信號發射塔不可能找到我們的個人電腦。也就是說,NB-IOT 開發板無法和我們的電腦直接通信,要進行 NB-IOT Socket 通信,必須準備一臺具有公網 IP 的伺服器。我個人買了三台雲伺服器,有一臺是作機動使用,完全沒問題。到時上這門課的時候,專門在伺服器上寫了個程式處理學生通過 Socket 發向伺服器的信號應該可以解決問題。各位讀者只能自己購買一臺伺服器學習了,現在騰訊阿裡的伺服器並不貴。

使用傳統方式進行開發需要在個人電腦寫好程式,然後發佈成 DLL 文件,然後拷貝到伺服器上運行,這個過程還是有點麻煩的。幸運的是 Visual Studio Code 現在可以進行遠程開發了,也就是直接編輯伺服器上的文件,在伺服器上發佈程式並運行,相當強大啊!接下來講解如何使用 Visual Studio Code 進行遠程開發。

安裝 Visual Studio Code 及遠程開發插件

第一步當然是安裝 Visual Studio Code,請參考這篇文章

然後安裝遠程開發插件 Remote Development。

  • 首先打開插件面板。
  • 在插件面板的搜索框中輸入remote development,搜索到 Remote Development 插件。
  • 點擊【Install】按鈕安裝插件。

在伺服器安裝 .NET Core 3.0

請參考這篇文章。需要註意的是這篇文章當時安裝的是 2.1 版本。現已出至 3.0,在指定版本時請改為 3.0。

使用用戶名和密碼的方式連接至伺服器

接下來就可以連接伺服器進行開發了。安裝完插件後,Visual Studio Code 窗體左下角會出現一個綠色圖標,點擊它,此時會在命令視窗彈出一系列選項,選擇其中的【Remote-SSH:Conntect to Host...】如下圖所示:

選擇【Conntect to Host...】後,命令行會變成下麵這個樣子:

選擇其中的【Configure SSH Host...】,命令行變為:

選擇其中的C:\Users\cg\.ssh\config,註意:cg 是我這臺電腦的用戶名,你的電腦是其它用戶名。此時會在 C:\Users\cg\.ssh\ 目錄下新建一個名為【config】的文件,併在 Visual Studio Code 中打開,輸入下圖所示文字:

  • Host 項的名字隨便起,它只是在 vs code 中顯示的名稱。
  • HostName 中輸入伺服器的 IP 地址。
  • User 中輸入用戶名,我偷懶,直接用 root 用戶了,這樣做並不安全,你可以自行在伺服器上建一個用戶來寫代碼。

寫完後保存,並關閉【config】文件。

接下來,重覆上述步驟,再次點擊 Visual Studio Code 窗體左下角圖標,在命令行中選擇【Remote-SSH:Conntect to Host...】

可以看到剛纔在【Host】項中填寫的名稱已經出現,選擇它。此時會彈出如下視窗讓你輸入密碼:

輸入密碼,按回車,連接伺服器成功後,窗體會變成如下模樣:

此時,左下角綠色區域文字變為“SSH:機動伺服器”,表示連接伺服器成功。

接下來,單擊【Open folder】打開伺服器上的一個文件夾進行開發,在命令行中輸入【/var/www/】,如下圖所示(你可以選擇其它的文件夾放置項目文件):

此時還會讓你輸入一次密碼,輸入即可,打開完成後,界面變為:

可以看到,在打開的文件夾中自動建立了一系列文件,用於個人電腦和伺服器間的交互。

創建第一個遠程項目

準備工作是做完了,接下來,我們可以開始第一個項目了。首先在 /var/www/ 文件夾下新建一個文件夾【FirstApp】。使用快捷鍵【Ctrl + ~】打開 TERMINAL,輸入如下命令建立文件夾併進入:

mkdir FirstApp
cd FirstApp

運行如下命令創建第一個應用程式:

dotnet new console

在 Visual Studio Code 窗體在側的【Explorer】中打開【Projram.cs】文件,已經寫好了一個 Hello World 代碼,可以直接運行。輸入如下命令:

dotnet run

運行命令後,顯示 Hello World!。我們的第一個遠程開發程式大功告成!

使用 SSH 公鑰連接伺服器

每次連接至伺服器都要輸入密碼,顯然非常麻煩,我們配置一個 SSH 公鑰,將來可以不輸密碼直接進到伺服器進行開發。

生成公鑰

在個人電腦 Win10 操作系統的左下角【開始】按鈕上點滑鼠右鍵,在彈出菜單中選擇【Windows PowerShell】項打開 PowerShell,輸入ssh-keygen命令,並一路按回車,如下圖所示:

打開C:\Users\cg\.ssh文件夾,可以看到生成了兩個新文件:id_rsa 和 id_rsa.pub。其中 id_rsa.pub 是公鑰,等下會用到。

配置伺服器登錄方式

使用 SSH 軟體登錄伺服器,一般雲供應商都會提供網頁連接方式,我使用的騰訊雲就提供了網頁方式登錄伺服器,輸入如下命令使用 vi 打開配置文件 sshd_config:

cd /etc/ssh/
vi sshd_config 

找到PubkeyAuthentication yes項,如果前面有一個#號,則去掉它(vi 使用i鍵進入編輯狀態)。先按 Esc 鍵,再按:號讓 vi 進入命令狀態,輸入wq保存並退出 vi。

將公鑰加入伺服器

在伺服器端輸入如下命令

cd ~/.ssh/
ls

可以看到~/.ssh/文件夾下有一個【authorized_keys】文件,我們需要將剛纔生成的公鑰拷貝到這個文件中。我試過直接用記事本選中文字拷貝行不通,裡面的特殊字元是無法選中的。需要先將公鑰上傳至伺服器的引目錄中,然後追加。相信買了一臺伺服器,上傳這樣的小事肯定是可以搞定的。如果實在搞不定,這裡介紹一個比較方便的方法。

首先在個人電腦 Win10 上打開命令提示符,進入到剛纔生成公鑰的C:\Users\cg\.ssh目錄。

cd .ssh
dir

此時應當列出了我們剛纔生成的公鑰。輸入如下命令(註意:如果你創建了另外的用戶,請將root替換掉):

scp id_rsa.pub root@<換為你伺服器的IP地址>:~/.ssh/

接下來輸入伺服器密碼,然後上傳成功。整個過程如下圖所示:

來到服務上的~/.ssh/文件夾中ls一下,id_rsa.pub 文件已經拷貝了過去。接下來輸入如下命令將公鑰追加至【authorized_keys】文件:

cat id_rsa.pub >> authorized_keys

好,至此已經大功告成,再次打開 Visual Studio Code,已經不再需要輸入密碼,就可以登錄伺服器了。如果你的筆記本也需要登錄伺服器進行開發,將 id_rsa 和 id_rsa.pub 這兩個文件拷貝至筆記本的C:\Users\cg\.ssh文件夾即可。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ArrayList和LinkedList的區別 步驟 1 : ArrayList和LinkedList的區別 ArrayList , 插入,刪除數據慢 LinkedList, 插入,刪除數據快 ArrayList是順序結構,所以 定位很快 ,指哪找哪。 就像電影院位置一樣,有了電影票,一下就找到位置 ...
  • Cookie Cookie 是一種伺服器發送給瀏覽器以鍵值對形式存儲小量信息的技術。 當瀏覽器首次請求伺服器時,伺服器會將一條信息封裝成一個Cookie發送給瀏覽器,瀏覽器收到Cookie,會將它保存在記憶體中(註意這裡的記憶體是本機記憶體,而不是伺服器記憶體)或者本地文件,那之後每次向伺服器發送請求,瀏覽 ...
  • Java ArrayList和HashSet的區別 示例 1 : 是否有順序 ArrayList: 有順序 HashSet: 無順序 HashSet的具體順序,既不是按照插入順序,也不是按照hashcode的順序。 以下是 HasetSet源代碼 中的部分註釋 / It makes no guara ...
  • 運行環境:centos 7,jdk 1.8 問題一: 原因:無法創建本地文件問題,用戶最大可創建文件數太小 解決方案:切換到root用戶,編輯limits.conf配置文件, 添加類似如下內容: vim /etc/security/limits.conf 添加如下內容:* soft nofile 6 ...
  • 最近又學到了很多新知識,感謝優銳課老師細緻地講解,這篇博客記錄下自己所學所想。 想更多地瞭解Spring Boot項目中的功能測試嗎?這篇文章帶你瞭解有關在測試中使用Docker容器的更多信息。 本文重點介紹在Spring Boot應用程式的功能測試期間應用一些最佳實踐。我們將演示一種高級方法,該方 ...
  • [TOC] SpringBoot如何優雅的使用RocketMQ MQ,是一種跨進程的通信機制,用於上下游傳遞消息。在傳統的互聯網架構中通常使用MQ來對上下游來做解耦合。 舉例:當A系統對B系統進行消息通訊,如A系統發佈一條系統公告,B系統可以訂閱該頻道進行系統公告同步,整個過程中A系統並不關係B系統 ...
  • https://www.cnblogs.com/onepixel/p/7674659.html這個文章很nicehttps://www.bilibili.com/video/av685670?from=search&seid=1637373535603658338這個動圖優秀https://www.... ...
  • 概述 此部分內容引用自 "MSDN文檔" 使用索引器可以用類似於數組的方式為對象建立索引。 取值函數返回值。 取值函數分配值。 關鍵字用於定義索引器。 關鍵字用於定義 索引器所賦的值。 索引器不必根據整數值進行索引;由你決定如何定義特定的查找機制。 索引器可被重載。 索引器可以有多個形參,例如當訪問 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...