iT邦幫忙

2026 iThome 鐵人賽

DAY 16
0
IT Operation

大學生的VirtualBox虛擬機與Ubuntu實戰30天系列 第 16

Day 16|設定 SSH 金鑰免密碼登入與 「以非 GUI 啟動」效能最佳化

  • 分享至 

  • xImage
  •  

昨天我們成功打通了 Windows 與 Ubuntu 之間的橋樑,用本機 VS Code 透過 Remote-SSH 直接連進虛擬機寫程式。

但在實際開發中,你很快會遇到一個惱人的問題

每次新開工作區、重新載入視窗、甚至網路稍微斷線重連,VS Code 上方就會立刻跳出輸入框要你輸入密碼。

頻繁輸入密碼不僅降低工作效率,在安全性上也容易面臨字風險。今天我們要完成兩項設定:
1.設定 SSH Key(非對稱金鑰認證):讓系統能點擊就能馬上連線,同時享有比純文字密碼更高的安全強度。
2.啟用「以非 GUI 啟動」:既然所有開發操作都移到了 VS Code,虛擬機的圖形視窗就可以功成身退,為電腦省下寶貴的記憶體與 GPU 資源。


1.為什麼要用金鑰認證?
傳統密碼認證就像拿一般鑰匙開鎖,只要密碼被側錄或暴力猜中,系統就直接門戶大開。
SSH 金鑰採用非對稱加密技術,由成對的「公鑰」與「私鑰」組成:

  • 公鑰:就像一把特製的鎖頭,部署在 Ubuntu 虛擬機的 ~/.ssh/authorized_keys 檔案中,任何人看到都不會影響安全。
  • 私鑰:就像專屬的印章,嚴格保存在你的 Windows 實體機中,絕對不能外洩。
    連線時,虛擬機用公鑰加密一串隨機數字傳過來,Windows 用私鑰解開並送回驗證。兩邊對上了就立即放行,全程不傳輸任何密碼,安全又迅速。

2.產生金鑰並配置到 Ubuntu
步驟 1:在 Windows 主機產生 Ed25519 金鑰對
在 Windows 實體主機按下 Win + R 輸入 cmd 打開命令提示字元,執行以下指令

ssh-keygen -t ed25519

1.儲存路徑:提示 Enter file in which to save the key,直接按Enter使用預設路徑。
2.設定密碼詞: 提示 Enter passphrase,為了達到完全免敲密碼的流暢度,直接按兩次 Enter 跳過

步驟 2:將公鑰複製到 Ubuntu 虛擬機中
在同一個 Windows CMD 視窗中,執行以下指令,透過 SSH 自動將公鑰寫入 Ubuntu 的受信任名單中

type %USERPROFILE%\.ssh\id_ed25519.pub | ssh -p 2222 ithome@127.0.0.1 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

(請將 ithome 換成你自己的 Ubuntu 帳號名稱)

  • 系統會最後一次向你詢問 Ubuntu 的登入密碼,輸入並按 Enter。
  • 指令執行完畢後沒有報錯即代表公鑰已成功寫入!

步驟 3:在 Windows 驗證免密碼連線
在 Windows CMD 中直接輸入:

ssh -p 2222 ithome@127.0.0.1

(請將 ithome 換成你自己的 Ubuntu 帳號名稱)
如果不需要輸入任何密碼,直接在跳出 ithome@ithome-VirtualBox:~$,代表金鑰認證已完成。


3.在 VS Code 設定檔綁定金鑰
回到實體主機的 VS Code,按下 F1 ➔ 輸入 Remote-SSH: Open SSH Configuration File... 打開剛才的 config 檔案。
加入一行 IdentityFile 指向你的私鑰路徑:

Host vb-ubuntu
    HostName 127.0.0.1
    User ithome
    Port 2222
    IdentityFile ~/.ssh/id_ed25519

按下 Ctrl + S 存檔。現在關閉 VS Code 重新點擊連線,你會發現視窗一跳出來就自動連上,不需要動手輸入任何密碼!


4.啟用「以非 GUI 啟動」
既然已經不需要碰虛擬機的畫面,每次都要看著 VirtualBox 彈出一個視窗純粹是浪費電腦記憶體與 GPU 資源。

什麼是非 GUI 啟動?
讓 VirtualBox 在 Windows 背景以服務(Service)形式執行虛擬機,不渲染任何 GUI 視窗。

操作方式:
(1)先將目前的 Ubuntu 正常關機。
(2)打開 VirtualBox 主畫面,選取你的 Ubuntu 虛擬機。
(3)點擊上方綠色「啟動」按鈕右邊的下拉倒三角形 ▾
(4)點選 「以非 GUI 啟動」
點選後,虛擬機的狀態會直接變成「正在執行」,但桌面上完全不會有任何視窗跳出來干擾。此時打開 VS Code 點擊連線,就能在背景安靜運作的狀態下連入開發環境。


|明日目標:進入環境個人化配置。我們將於虛擬機安裝 Zsh 與 Oh My Zsh 框架,並配置語法高亮及自動建議插件,提升終端機操作效率。|


上一篇
Day 15|實體機 VS Code 透過 Remote-SSH 直連 Ubuntu 開發環境
下一篇
Day 17|Ubuntu 安裝 Zsh 與 Oh My Zsh
系列文
大學生的VirtualBox虛擬機與Ubuntu實戰30天22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言