Jetson Orin Nano 開發環境:用 VS Code Remote-SSH 從 Windows 遠端寫程式

拿到 Jetson Orin Nano 之後,第一個問題通常不是 AI 模型,而是「程式要在哪裡寫?」直接在 Jetson 上接螢幕、鍵盤,桌面環境會吃掉不少記憶體,操作也不順;在 Windows 寫好再複製過去,來回傳檔又很麻煩,長程式碼貼進終端機還常被截斷。

比較好的做法是 VS Code Remote-SSH:程式碼和執行環境都留在 Jetson 上,你在 Windows 的 VS Code 裡編輯、開終端機、跑程式,用起來跟開本機資料夾幾乎一樣。Jetson 本身不用接螢幕,只要接上網路就好。

這篇從頭到尾走一次,做到用 VS Code 透過 SSH 連上 Jetson、打開專案資料夾為止。


本文環境

項目 內容
開發板 Jetson Orin Nano 8GB(官方 devkit 載板)
Jetson 系統 JetPack 6.2(Ubuntu 22.04)
主控端 Windows 10/11,Visual Studio Code
網路 Jetson 與 Windows 電腦在同一個區域網路

文中的 IP、使用者名稱都是範例,請換成你自己的:

範例 代表
192.168.1.50 Jetson 的 IP 位址
jetson-user Jetson 的登入帳號
my_project 你的專案資料夾

運作方式

[ Windows 電腦 ]
 └── VS Code + Remote-SSH 擴充功能
        │   畫面、按鍵在本機
        │
        │   區域網路(SSH,22 埠)
        ▼
[ Jetson Orin Nano ]
 └── VS Code Server(第一次連線時自動安裝)
     ├── 讀寫檔案
     ├── 終端機
     └── 執行、除錯程式

VS Code 第一次連線時,會自動在 Jetson 的家目錄裝一個小型伺服器(~/.vscode-server)。之後你在 VS Code 開的檔案、終端機、執行的 Python,全部都在 Jetson 上,所以會直接用到 Jetson 的 GPU、相機與系統套件。


步驟 1:Jetson 端準備

這一步需要暫時接上螢幕和鍵盤,或用 USB 序列埠登入。設定好之後就不必再接。

1-1 接上網路,查詢 IP

把 Jetson 接上有線網路或 Wi-Fi,確認它和 Windows 電腦在同一個區域網路。接著在 Jetson 的終端機執行:

hostname -I

記下第一組 IP(例如 192.168.1.50),也記下你登入 Jetson 用的帳號名稱。

建議固定 IP:如果 Jetson 的 IP 是路由器動態分配的,重開機後可能會變,VS Code 就會連不上。可以在路由器替 Jetson 的 MAC 位址保留固定 IP,或在 Jetson 的網路設定裡改成手動 IP。

1-2 確認 SSH 服務有開

JetPack 預設已經啟用 SSH。保險起見可以再確認一次:

sudo systemctl enable --now ssh
systemctl status ssh --no-pager

狀態顯示 active (running) 就可以了。


步驟 2:Windows 端先用終端機測試 SSH

先別急著開 VS Code。 先用 Windows 內建的 SSH 指令連一次,確認網路和帳號密碼都沒問題。這樣如果之後 VS Code 連不上,就知道問題出在 VS Code,不是網路。

Windows 10/11 已經內建 OpenSSH 用戶端。打開 PowerShell:

ssh jetson-user@192.168.1.50

第一次連線會出現主機指紋確認:

Are you sure you want to continue connecting (yes/no/[fingerprint])?

輸入 yes,再輸入 Jetson 的登入密碼。看到 Jetson 的命令提示字元就代表成功,輸入 exit 離開。

如果出現 ssh 不是可辨識的指令,請到 Windows「設定 → 系統 → 選用功能」安裝 OpenSSH 用戶端。


步驟 3:安裝 VS Code 與 Remote-SSH 擴充功能

  1. 到 VS Code 官網(code.visualstudio.com)下載並安裝 Visual Studio Code。
  2. 開啟 VS Code,點左側的 Extensions 圖示(Ctrl + Shift + X)。
  3. 搜尋 Remote - SSH,安裝 Microsoft 發行的官方版本。

安裝完成後,VS Code 左下角會多一個綠色(或藍色)的 >< 遠端連線按鈕。


步驟 4:用 VS Code 連上 Jetson

4-1 新增 SSH 主機

  1. 按 F1(或 Ctrl + Shift + P),輸入並選擇 Remote-SSH: Add New SSH Host...
  2. 輸入步驟 2 測試成功的那行指令:

text ssh jetson-user@192.168.1.50

  1. 詢問要存到哪個設定檔時,選第一個,也就是你自己使用者目錄下的 .ssh\config。

建議接著用 Remote-SSH: Open SSH Configuration File... 打開這個檔案,替主機取個好記的名字:

Host jetson
    HostName 192.168.1.50
    User jetson-user

之後在清單裡只要選 jetson 就好。IP 換了也只需要改這裡。

4-2 發起連線

  1. 按 F1 → Remote-SSH: Connect to Host... → 選擇 jetson。
  2. VS Code 會開一個新視窗。如果詢問遠端平台,選 Linux。
  3. 輸入 Jetson 的登入密碼。

第一次連線需要等一兩分鐘,因為 VS Code 正在 Jetson 上下載、安裝 VS Code Server。這段時間 Jetson 需要能連上網際網路。 完成後,左下角狀態列會顯示 SSH: jetson。

4-3 開啟專案資料夾、使用終端機

  • 點左側 Explorer → Open Folder,選擇 Jetson 上的資料夾,例如 /home/jetson-user/my_project。如果還沒有資料夾,可以先在終端機執行 mkdir ~/my_project。
  • 按 Ctrl + ` 開啟終端機。這個終端機直接跑在 Jetson 上,可以輸入 cat /etc/nv_tegra_release 確認看看,會顯示 Jetson 的 L4T 版本。

到這裡,你已經可以在 Windows 上編輯 Jetson 的檔案,並在 Jetson 上執行程式。


步驟 5(建議):改用 SSH 金鑰,免輸入密碼

每次連線都要輸入密碼很煩,而且 VS Code 重新連線時可能會跳出好幾次密碼提示。改用金鑰登入可以一次解決。

5-1 在 Windows 產生金鑰

在 PowerShell 執行,過程中全部按 Enter 使用預設值:

ssh-keygen -t ed25519

這會在 %USERPROFILE%\.ssh\ 產生兩個檔案:id_ed25519(私鑰,絕對不要外流)和 id_ed25519.pub(公鑰,可以放到 Jetson 上)。

5-2 把公鑰放到 Jetson

Windows 沒有 ssh-copy-id 指令,改用下面這行。這是最後一次需要輸入密碼:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh jetson-user@192.168.1.50 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

5-3 驗證

直接用步驟 4-1 在設定檔裡取的主機名稱連線:

ssh jetson

如果沒有詢問密碼就直接登入,代表金鑰設定成功。之後 VS Code 連線、scp 傳檔都不需要再輸入密碼。


常見問題

狀況 原因與處理
PowerShell 的 ssh 也連不上(逾時) 網路問題。確認兩台在同一個網段、IP 沒變,並在 Jetson 上確認 ssh 服務正在執行。
出現 REMOTE HOST IDENTIFICATION HAS CHANGED! 通常是 Jetson 重灌系統後主機金鑰換了。在 Windows 執行 ssh-keygen -R 192.168.1.50 清掉舊紀錄,再重新連線。
VS Code 一直卡在 Setting up SSH Host 第一次安裝 VS Code Server 時,Jetson 需要能連上網際網路。也可以在 Jetson 上刪除 ~/.vscode-server,再重連一次。
一直跳出密碼提示,或要求選平台 照步驟 5 改用金鑰登入;在 VS Code 設定搜尋 remote.SSH.remotePlatform,把 jetson 設為 linux。
連上後 Jetson 變慢 遠端擴充功能也在 Jetson 上執行。只在遠端安裝必要的擴充功能(例如 Python),用不到的就不要裝。

小結

  1. Jetson:查 IP、確認 SSH 服務開著,最好固定 IP。
  2. Windows:先用 PowerShell ssh 測試連線。
  3. VS Code:安裝 Remote-SSH,新增主機,連線後開啟專案資料夾。
  4. 改用 SSH 金鑰登入,之後連線不用再輸入密碼。

環境建好之後,就可以在熟悉的編輯器裡開發 Jetson 上的 AI 程式了。下一篇〈實戰(一)〉會用這套環境,把 CSI 相機加上 YOLOv8,做成即時物件偵測串流。

留言

這個網誌中的熱門文章

在 VS Code 安裝Opencode

使用VS code開發Python程式 - Matplotlib繪圖

LabVIEW教學: 如何在VI中使用.dll檔