連到 Linux 板子(UART 或 SSH)
這一頁帶你從零開始,用 TERM 面板登入一塊跑 Linux 的板子。面板本身的按鍵、回捲、複製貼上等細節見 終端機(TERM),這裡只講「怎麼連上」。
範例一律用合成資料:主機 demo-board、使用者 demo、位址 192.0.2.10。
兩種接法擇一:板子有 debug 序列埠就走 UART;板子上了網路就走 SSH。
方法一:UART
-
把板子的 debug UART 接到電腦,在裝置管理員確認 COM 埠編號(以下用
COM7)。 -
F9把一個面板選成term(或指令layout @p<N> term)。 -
連線列選
UART、選COM7,按[Connect];或用指令:term open uart COM7 115200 -
按
Enter叫出登入提示,輸入帳號密碼。
如果同一個埠還開在 UART 記錄面板,要先關掉:TERM 連線時獨佔該埠。
UART 送出面板的換行下拉要接 Linux shell 時請選 CR(CRLF 會多送一個字元,shell 看到的是多出來的空提示);TERM 面板自己送 Enter,不受這個設定影響。
告訴板子終端有多大
序列線沒有視窗大小這個通道,板子的 shell 不知道面板有幾欄幾列。連線中面板標題會顯示大小,例如 TERM 126×22。登入後在板子上執行:
stty rows 22 cols 126(換成你標題上的 列 與 欄;面板縮放後再執行一次。)
或者在板子的 ~/.bashrc 定義下面這個函式,需要時直接呼叫 resize_term,它會自己向 TERM 面板詢問游標位置來量出大小:
resize_term() { printf '\0337\033[r\033[999;999H\033[6n\0338'; IFS='[;R' read -rsd R _ r c; stty rows "$r" cols "$c"; }這件事和 PuTTY 一樣要自己做;SSH 則會自動同步,不需要。
方法二:SSH
1. 確認 Windows 有 OpenSSH 客戶端
TERM 的 SSH 來源使用 Windows 內建的 ssh.exe。在 PowerShell 執行:
ssh -V印出版本(例如 OpenSSH_for_Windows_9.x)就代表已安裝。找不到指令的話,到「設定 > 系統 > 選用功能 > 新增功能」安裝「OpenSSH 用戶端」,或用系統管理員身分開 PowerShell 執行:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.02. 準備 OpenSSH 格式的金鑰
ssh.exe 讀不了 PuTTY 的 .ppk。已有 .ppk 的話,用 puttygen 轉一次:
- 開啟
puttygen,File > Load private key 載入.ppk(有密語就輸入)。 - 選單 Conversions > Export OpenSSH key,存成
C:\Users\<你>\.ssh\id_ed25519。
還沒有金鑰的話,PowerShell 執行 ssh-keygen -t ed25519 產生,再把公鑰(id_ed25519.pub)加進板子的 ~/.ssh/authorized_keys。
3. 修正金鑰檔權限
私密金鑰檔如果其他帳號也讀得到,ssh 會拒絕使用並印出:
WARNING: UNPROTECTED PRIVATE KEY FILE!
Permissions for 'C:\Users\demo\.ssh\id_ed25519' are too open.
Bad permissions. Try removing permissions for user: ...用 icacls 把檔案改成只有你自己能讀(PowerShell,路徑換成你的金鑰):
icacls "$env:USERPROFILE\.ssh\id_ed25519" /inheritance:r
icacls "$env:USERPROFILE\.ssh\id_ed25519" /grant:r "$($env:USERNAME):(R)"第一行移除繼承來的權限,第二行只留你自己唯讀。再重新連線即可。
4. 在 ~/.ssh/config 寫一個別名
建立(或編輯)C:\Users\<你>\.ssh\config:
Host demo-board
HostName 192.0.2.10
User demo
IdentityFile ~/.ssh/id_ed25519Host 後面的名字會出現在 TERM 連線列的主機清單裡。規則(萬用樣式略過、最多列幾個等)見 終端機(TERM) 的 SSH 來源一節。
5. 連線
選好主機按 [Connect],或用指令:
term open ssh demo-board
term open ssh demo@192.0.2.10第一次連線,ssh 會在面板裡問:
The authenticity of host '192.0.2.10 (192.0.2.10)' can't be established.
ED25519 key fingerprint is SHA256:...
Are you sure you want to continue connecting (yes/no/[fingerprint])?這是在確認你連的真的是那台板子。核對指紋沒問題後在面板輸入 yes 按 Enter,指紋會記進 known_hosts,之後不再問。如果之後突然出現 REMOTE HOST IDENTIFICATION HAS CHANGED,代表板子重刷過或有人冒充,請先查清楚再處理,不要直接略過。
沒有金鑰的話,ssh 會改問密碼,一樣直接在面板打字回答。
接下來
- 回捲、選取、複製貼上、Session 記錄:終端機(TERM)
- 想記錄板子的開機訊息:連上 UART 後
term log on