
在系統管理 (SysAdmin) 與開發維運 (DevOps) 的世界裡,SSH (Secure Shell) 是我們與遠端伺服器溝通的命脈。我們每天透過它登入主機、檢查服務狀態、部署最新程式碼、執行維護腳本。但你是否想過,如果這些日常的、重複的 SSH 操作,也能被納入 n8n 的視覺化自動化工作流中呢?
- 當網站監控系統發現異常時,n8n 自動透過 SSH 登入主機,執行
systemctl restart nginx
來嘗試重啟服務。 - 每天凌晨三點,n8n 自動 SSH 到你的資料庫主機,執行
pg_dump
指令來進行資料庫備份,並將備份檔上傳到 S3。 - 當開發者將最新的程式碼推送到 Git 主分支時,一個 Webhook 觸發 n8n,n8n 再透過 SSH 登入生產伺服器,自動執行
git pull
和docker-compose up -d --build
來完成 CI/CD 部署。
這,就是 n8n SSH
節點所帶來的強大能力。它讓 n8n 不再只是一個串接雲端 SaaS 服務的工具,更是一個能夠直接管理你底層基礎設施的「自動化 Ops Center (維運中心)」。
這篇文章將是你的 n8n SSH 節點終極實戰指南。我們將從最重要的「安全金鑰設定」開始,手把手教你如何建立安全的連線,並透過兩個超實用的監控與部署範例,讓你學會如何將繁瑣的伺服器指令,轉化為可靠、可重複執行的自動化腳本。
為什麼要用 n8n 執行 SSH?打造你的視覺化 Ops Center
將 SSH 指令整合到 n8n 工作流中,能為你的維運工作帶來三大革命性優勢:
- 集中化與視覺化腳本管理: 告別散落在各個伺服器、各個工程師電腦中的零散 Shell Script 吧!你可以將所有常用的維運腳本,都建構成一個個清晰的 n8n 工作流。流程一目了然,方便交接與管理。
- 事件驅動的伺服器操作: 傳統的 SSH 操作是手動的、計畫性的。但透過 n8n,你可以讓伺服器指令由「事件」來驅動。例如,
UptimeRobot
的 Webhook 成為觸發器,Prometheus Alertmanager
的警報成為觸發器,讓你的伺服器能夠對外部事件做出即時的、自動化的反應。 - 跨系統整合的強大能力: 這是 n8n 最強大的地方。SSH 指令的執行結果,不再只是一段終端機上的文字。在 n8n 中,你可以輕易地將
df -h
指令回傳的磁碟空間使用率,與IF
節點結合進行判斷,再透過Slack
或Microsoft Teams
節點發出警報。你可以將git pull
的成功訊息,記錄到Google Sheets
的部署日誌中。
安全連線是第一要務:設定 SSH 金鑰憑證的完整教學
在讓 n8n 掌握你伺服器的鑰匙之前,我們必須確保這把鑰匙是絕對安全的。雖然 SSH
節點支援帳號密碼登入,但這是一種極不安全的做法。在任何正式環境中,你都應該使用「SSH 金鑰 (SSH Keys)」。
為什麼絕不應該使用密碼?
- 安全性低: 密碼容易被暴力破解(Brute-force attack)。
- 管理困難: 密碼需要記憶和定期更換,且寫在 n8n 憑證中等於是明文儲存。
- 無法用於自動化: 許多伺服器為了安全,會禁用密碼登入。
設定 SSH 金鑰憑證 (Step-by-Step)
- 在本機產生 SSH 金鑰對:
- 打開你的電腦終端機 (不是 n8n 伺服器),執行以下指令:Bash
ssh-keygen -t rsa -b 4096 -C "n8n-automation-key"
- 系統會要求你輸入儲存位置(直接按 Enter 使用預設值即可)和密碼(建議留空,方便 n8n 自動使用)。
- 完成後,你會在你的使用者目錄下的
.ssh
資料夾中,看到兩個新檔案:id_rsa
:私鑰 (Private Key),這是你的秘密鑰匙,絕對不能外洩。id_rsa.pub
:公鑰 (Public Key),這是你要安裝到遠端伺服器上的鎖。
- 打開你的電腦終端機 (不是 n8n 伺服器),執行以下指令:Bash
- 將「公鑰」安裝到你的遠端伺服器:
- 你需要將
id_rsa.pub
檔案的內容,附加到你希望 n8n 登入的那個使用者帳號底下的~/.ssh/authorized_keys
檔案中。 - 一個簡單的指令是(在本機執行):Bash
ssh-copy-id user@your_server_ip
(user
和your_server_ip
請換成你自己的伺服器資訊) - 最佳實踐: 你應該為 n8n 在遠端伺服器上,建立一個權限受限的專屬使用者(例如
n8n-runner
),而不是直接使用root
帳號。
- 你需要將
- 在 n8n 中建立 SSH 憑證:
- 在 n8n 中新增
SSH
節點,於Credential
欄位點擊「Create New」。 - Authentication Method: 選擇
Private Key
。 - User:
n8n-runner
(你在遠端伺服器上設定的專屬使用者)。 - Host:
your_server_ip
(你的遠端伺服器 IP 或網域)。 - Port:
22
(或你的自訂 SSH 埠口)。 - Private Key: 將你本機
id_rsa
私鑰檔案的完整內容(包含-----BEGIN RSA PRIVATE KEY-----
和-----END RSA PRIVATE KEY-----
),複製並貼到這個欄位中。 - 儲存憑證。
- 在 n8n 中新增

SSH
節點核心功能:執行遠端指令與處理回傳結果
設定好連線後,使用節點就非常簡單了。
- Operation:
Execute Command
- Command: 你想要在遠端伺服器執行的 Shell 指令。這個欄位完全支援 Expressions,讓你可以動態地組合指令。
- 輸出結果 (Output):
stdout
: Standard Output,代表指令成功執行後,在終端機上印出的正常結果。stderr
: Standard Error,代表指令執行過程中發生的錯誤訊息。exitCode
: 結束代碼。一般來說,0
代表成功,非0
代表有錯誤發生。
你可以利用 IF
節點,根據 exitCode
或 stderr
是否為空,來判斷 SSH 指令是否執行成功,並進行後續的錯誤處理。
實戰演練一:建立「伺服器磁碟空間」自動監控警報
- 目標: 每天凌晨檢查一次網站主機的磁碟空間,如果根目錄 (
/
) 的使用率超過 90%,就發送一則 Slack 緊急通知。 - 流程設計:
Schedule
->SSH
->IF
->Slack
Schedule
節點: 設定每天凌晨執行。SSH
節點:- Credential: 選擇你設定好的伺服器憑證。
- Command:
df -h /
(這是 Linux 中用來查詢磁碟空間的指令)。
IF
節點:- 這裡需要一點點 Expressions 技巧來解析
df
指令的輸出。 - Value 1 (Expression):
{{ parseInt($json.stdout.split('\n')[1].split(/\s+/)[4].replace('%','')) }}
- 解說: 這串語法的作用是,將
stdout
的輸出文字進行分割,精準地抓取出使用率的那個數字(例如95%
),並轉換成數字95
。
- 解說: 這串語法的作用是,將
- Operation:
Number: Greater Than
- Value 2:
90
- 這裡需要一點點 Expressions 技巧來解析
Slack
節點:- 連接在
IF
節點的true
路徑上。 - Text:
🚨 警報:網站主機磁碟空間即將耗盡!目前使用率:{{ parseInt($json.stdout.split('\n')[1].split(/\s+/)[4].replace('%','')) }}%
- 連接在
實戰演練二:實現簡易的「Git Webhook 自動化部署」
- 目標: 當 GitHub 儲存庫的
main
分支有新的 push 時,自動登入到生產主機,執行git pull
並重啟對應的 Docker 服務。 - 流程設計:
Webhook
->IF (驗證)
->SSH
Webhook
節點:- 接收來自 GitHub Webhook 的請求。在 GitHub 中設定,當有
push
事件時,觸發這個 Webhook URL。 - 在 Webhook 設定中加入一個
Secret
,用於驗證請求的合法性。
- 接收來自 GitHub Webhook 的請求。在 GitHub 中設定,當有
IF
節點: 驗證 GitHub 送來的簽章,確保請求不是偽造的。SSH
節點:- Credential: 選擇你的生產主機憑證。
- Command:Bash
cd /path/to/your/project && git pull && docker-compose up -d --build
- 解說: 我們用
&&
來串連多個指令,確保前一個成功後才會執行下一個。cd
進入專案目錄,git pull
拉取最新程式碼,docker-compose up...
則是用最新的程式碼,重新建置並啟動服務。
- 解說: 我們用

結語
n8n 的 SSH
節點,是你自動化版圖中的最後一塊、也是最硬核的一塊拼圖。它將 n8n 的能力,從雲端 SaaS 的世界,延伸到了你基礎設施的最底層。
透過它,你可以將重複的系統維護工作、繁瑣的部署流程、以及應急的監控反應,全部轉化為視覺化、可管理、且能與你整個數位生態系聯動的自動化工作流。
請務必將「安全」作為使用此節點的最高指導原則,永遠優先使用權限受限的專屬帳號與 SSH 金鑰。當你掌握了這個強大的工具後,你會發現,沒有什麼伺服器上的任務,是 n8n 無法為你代勞的。
更多精選文章請參考
n8n 與 Zapier 比較:該選哪個?2025年最完整功能、費用、優缺點分析
開源自動化工具推薦:從工作流程到測試,找到最適合你的免費方案
n8n 發送 Email 超詳細教學:從 SMTP 設定到 Gmail 節點串接,一篇搞定!
n8n Notion 串接終極指南:2025 年打造自動化工作流程,效率翻倍!