본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 05. 21. 00:48

n8n과 Claude Code를 SSH로 연결하여 강력한 자동화 워크플로우 구축하기

요약

n8n의 SSH 노드를 활용하여 Claude Code와 같은 AI 터미널 도구를 원격 서버에 연결하고 자동화 워크플로우를 구축하는 방법을 설명합니다. SSH를 통해 n8n에서 직접 명령어를 실행함으로써 AI 에이전트의 기능을 워크플로우에 통합할 수 있습니다.

핵심 포인트

  • n8n의 SSH 노드를 사용하여 Linux 서버에 설치된 Claude Code를 원격 제어할 수 있습니다.
  • Claude Code의 `-p` (print) 플래그를 사용하면 대화형 입력 없이 헤드리스 모드로 프롬프트를 처리할 수 있습니다.
  • n8n 인스턴스와 AI 터미널 도구가 동일한 VPS에 있거나 SSH로 연결된 상태여야 합니다.
  • 프로젝트 디렉터리로 이동(cd)한 후 명령을 실행하여 Claude Code가 로컬 파일에 접근하도록 설정해야 합니다.

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)
Port22 (기본 SSH)
UsernameSSH 사용자 이름
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)

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0