SSH를 통해 n8n을 Claude Code(또는 기타 AI 터미널 도구)에 연결하여 강력한 자동화 워크플로우를 구축하세요.
비디오: n8n + Claude Code는 매우 강력합니다 (OVERPOWERED)
- 사전 요구 사항 (Prerequisites)
- 아키텍처 개요 (Architecture Overview)
- 설정 가이드 (Setup Guide)
- 기본 사용법 (Basic Usage)
- 세션 관리 (Session Management)
- 고급 워크플로우 (Advanced Workflows)
- 문제 해결 (Troubleshooting)
- 리소스 (Resources)
세 가지가 필요합니다:
n8n 인스턴스 (n8n Instance) - 셀프 호스팅(Self-hosted) 또는 클라우드(Cloud)
AI 터미널 도구 (AI Terminal Tool) - Claude Code (권장), Gemini CLI 또는 Codex
커피 (Coffee) - 이건 그냥 규칙입니다
- Anthropic Pro 구독 또는 API 액세스가 필요합니다.
- 모든 Linux 기반 머신(Mac, Windows WSL 포함)에 설치할 수 있습니다.
Claude Code를 다음 위치에 설치할 수 있습니다:
| 위치 | 장점 | 단점 |
|---|
| n8n과 동일한 VPS | 간단한 설정, 동일한 머신 | 리소스 공유 |
| ... | | |
┌─────────────┐ SSH ┌──────────────────┐
│ n8n │ ───────────────────► │ Linux Server │
│ (workflow) │ │ (Claude Code) │
...
비결이 무엇일까요? 바로 SSH입니다. 그게 전부입니다. n8n은 SSH 노드(node)를 사용하여 서버에서 Claude Code 명령을 원격으로 실행합니다.
Linux 서버에서 (Ubuntu 예시):
# Node.js 설치 (설치되어 있지 않은 경우)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
...
- n8n에서 워크플로우에 SSH 노드를 추가합니다. - Create New Credential을 클릭합니다. - 서버 세부 정보를 입력합니다:
| 필드 (Field) | 값 (Value) |
|---|
| Host | 서버 IP (예: 10.77.14.30 또는 공인 IP) |
| Port | 22 (기본 SSH) |
| Username | SSH 사용자 이름 |
| Authentication | 비밀번호(Password) 또는 개인 키(Private Key) |
| Password/Key | 사용자 자격 증명 |
- Save를 클릭합니다. - "Connection tested successfully" 메시지를 확인합니다.
먼저, 기본적인 명령어로 테스트해 보세요:
hostname
정상적으로 작동한다면, Claude Code를 테스트합니다:
claude --version
출력 결과에서 Claude Code 버전을 확인할 수 있어야 합니다.
헤드리스 모드(headless mode)를 위해 -p (print) 플래그를 사용하세요. 프롬프트를 보내고 응답을 받습니다:
SSH 노드 명령 (SSH Node Command):
claude -p "Why do pugs look so weird?"
-p 플래그는 Claude를 "출력 모드(print mode)"로 설정합니다. 즉, 대화형 입력 없이 프롬프트를 처리하고 결과를 반환합니다.
먼저 디렉터리를 변경하여 Claude가 프로젝트 파일에 접근할 수 있도록 하세요:
SSH 노드 명령 (SSH Node Command):
cd /path/to/your/project && claude -p "Is this video going to be any good?"
Claude는 응답을 생성하기 위해 해당 디렉터리의 파일들을 읽을 것입니다. 이것이 바로 **로컬 파일로부터 얻는 컨텍스트 (context from your local files)**라는 강력한 힘입니다.
도구 사용 (tool use) 및 에이전트 배포 (agent deployment)를 활성화하려면 Claude를 "위험 모드 (dangerous mode)"로 설정하세요:
SSH 노드 명령 (SSH Node Command):
claude --dangerously-skip-permissions -p "Use your unifi skill to check wifi status, network performance, and security. Deploy three agents, one for each task. Keep response under 2000 characters."
이를 통해 Claude는 다음을 수행할 수 있습니다:
- 설치된 스킬 (UniFi, Slack 등) 사용
- 여러 에이전트를 병렬로 배포
- 코드 및 스크립트 실행
- API 및 외부 서비스 접근
진정한 강력함은 여러 번의 n8n 실행(executions)에 걸쳐 대화를 유지하는 데서 나옵니다.
UUID를 생성하기 위해 SSH 노드 이전에 Code 노드를 추가하세요:
Code 노드 (JavaScript):
const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
const r = Math.random() * 16 | 0;
const v = c == 'x' ? r : (r & 0x3 | 0x8);
...
SSH 노드 명령 (SSH Node Command):
claude -p "How many access points are up right now?" --session-id {{ $json.sessionId }}
대화를 이어가려면 동일한 세션 ID와 함께 -r (resume, 재개) 플래그를 사용하세요:
SSH 노드 명령 (후속 질문, SSH Node Command (Follow-up)):
claude -r --session-id {{ $('Code').item.json.sessionId }} -p "Why is one of them down?"
-r 플래그는 이전 세션을 재개하므로, Claude가 이전 질문의 컨텍스트를 기억하게 합니다.
Slack을 통해 휴대폰에서 Claude Code와 채팅할 수 있는 워크플로우를 만들어 보세요:
[Slack Trigger] → [Code: UUID 생성] → [SSH: 초기 Claude 명령]
↓
[Slack: 응답 전송]
...
Slack Trigger: 봇을 언급하는 메시지를 감지합니다.
Code 노드: 세션 UUID를 생성합니다 (위 내용 참조).
SSH 노드 (초기, SSH Node (Initial)): --session-id가 포함된 첫 번째 Claude 명령입니다.
Slack 응답 (Slack Response): Claude의 응답을 채널에 다시 게시합니다.
Slack 드롭다운 (Slack Dropdown): "완료되었습니까? [예] [아니오]"
If 노드 (If Node): 사용자의 선택에 따라 경로를 지정합니다.
SSH 노드 (재개) (SSH Node (Resume)): 후속 작업을 위해 -r --session-id를 사용합니다.
루프 (Loop): 사용자가 "예"를 선택할 때까지 계속됩니다.
@bot nano와 neovim 중 어느 것이 더 나은지 대결하도록 두 개의 에이전트를 배포해줘.
조사하고, 대조하고, 비교해서 확실한 답변을 줘. 응답은 2000자 이내로 유지해.
@bot 네 NAS 기술을 사용해서 내 스터프(stuff) 서버가 어떻게 돌아가고 있는지 확인해줘
일반적인 문제 및 해결 방법:
SSH 세션이 셸 프로필 (shell profile)을 로드하지 못할 수 있습니다. 해결 방법:
- 전체 경로 사용 (Use full path):
/usr/local/bin/claude -p "your prompt"
- 프로필 먼저 소싱 (Source profile first):
source ~/.bashrc && claude -p "your prompt"
- 시스템 PATH에 추가 (Add to system PATH):
sudo ln -s $(which claude) /usr/local/bin/claude
Claude가 파일에 접근하거나 도구 (tools)를 실행할 수 없는 경우:
- SSH 사용자가 적절한 권한을 가지고 있는지 확인하십시오.
- 도구 접근을 위해
--dangerously-skip-permissions를 사용하십시오.
- 프로젝트 디렉토리의 파일 소유권을 확인하십시오.
다음 사항을 반드시 확인하십시오:
- 정확히 동일한 세션 ID (session ID)를 사용하고 있는지
- 재개할 때
-r 플래그 (flag)를 포함하고 있는지
- 너무 많은 시간이 지나지 않도록 주의하십시오 (세션이 만료될 수 있음)
Slack에는 4000자 제한이 있습니다. 프롬프트에 다음을 추가하십시오:
Keep response under 2000 characters.
오래 걸리는 Claude 작업의 경우:
- n8n 노드 설정에서 SSH 타임아웃 (timeout)을 늘리십시오.
- 복잡한 작업을 더 작은 프롬프트로 나누는 것을 고려하십시오.
NetworkChuck Academy: n8n 코스 | Claude Code 코스
Claude Code 문서 (Docs): 공식 문서
n8n 문서 (Docs): SSH 노드
이전 영상들 (Previous Videos):
- n8n Part 1 - n8n 시작하기
- n8n Part 2 - n8n이 이제 내 홈랩(Homelab) 전체를 실행합니다 (Terry)
- 터미널에서의 AI - Claude Code, Gemini CLI, Codex 소개
다음 영상에서는 다음과 같은 구성 요소로 완전한 **IT 부서 (IT Department)**를 구축할 것입니다:
- 오케스트레이터 (orchestrator)로서의 n8n
- 작업자 (workers)로서의 Claude Code, Gemini CLI, Codex
- 자동화된 모니터링, 알림 및 복구 (remediation)