Hermes Agent 호스팅: 5달러 VPS로 충분할까?
Hermes Agent는 모델을 외부에서 실행하므로 5달러 VPS로도 충분히 구동 가능합니다. 전용 사용자 계정 생성, systemd의 ProtectSystem=strict 설정, UFW의 IPv6 방화벽 구성 등 안전한 운영을 위한 필수 보안 가이드를 확인하십시오.
Hermes Agent란 무엇인가
Hermes Agent는 2026년 2월에 공개된 Nous Research의 셀프 호스팅 AI 에이전트입니다. 사용자의 서버에서 직접 실행되며, 프로젝트에 대한 지속적인 메모리를 유지하고, 작업 과정에서 재사용 가능한 기술을 스스로 작성하며, Telegram이나 Discord 같은 채팅 앱을 통해 사용자와 소통합니다. 모델에 구애받지 않으므로 원하는 언어 모델을 자유롭게 연결할 수 있으며, $5 VPS, Docker, SSH 환경에서도 충분히 실행될 만큼 가볍습니다. 모델은 외부에서 실행되고 루프, 도구, 메모리는 사용자의 서버에서 실행되는 이러한 구조 덕분에 Hermes는 모델 그 자체가 아닌 에이전트 하네스가 되며, 소규모 서버에서도 원활하게 작동할 수 있습니다.
모든 에이전트가 그렇듯, Hermes Agent의 가치는 사용자를 대신하여 행동하는 데서 나오며, 그렇기에 신중하게 설정해야 합니다. 기억하고, 학습하며, 작업을 수행하는 에이전트는 서버에 실질적인 접근 권한을 가진 상주 프로세스입니다. 이 가이드는 안전한 설치 방법을 안내하며, 여기에 적용된 보안 강화 조치는 OpenClaw를 안전하게 실행하는 방법과 동일합니다.
단일 명령 설치와 이를 먼저 읽어야 하는 이유
Hermes는 단일 명령으로 설치할 수 있습니다.
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash이는 편리하지만, 존중해야 할 패턴이기도 합니다. 인터넷에서 스크립트를 가져와 셸로 바로 파이프하면, 해당 스크립트가 포함하는 모든 내용을 실행하는 사용자의 권한으로 실행하게 됩니다. 실제 서버에서 실행하기 전에 먼저 다운로드하여 내용을 읽고, root가 아닌 전용 사용자로 실행하십시오.
curl -fsSL https://hermes-agent.nousresearch.com/install.sh -o hermes-install.sh
less hermes-install.sh이는 특정하게 Hermes를 불신해서가 아닙니다. 어떤 curl | bash 설치라도 시스템의 가장 취약한 고리가 되지 않도록 방지하는 습관입니다.
권한이 없는 사용자에게 실행 권한 부여
Hermes를 root가 아닌 전용 시스템 계정으로 실행하여, 버그나 잘못된 명령이 시스템의 나머지 부분에 영향을 미치지 않도록 하십시오. 로그인 셸이 없는 사용자를 생성합니다.
sudo useradd --system --home /opt/hermes --shell /usr/sbin/nologin hermesHermes를 /opt/hermes 아래에 설치하고 해당 계정을 소유자로 지정하십시오. 공식 설치 프로그램은 실행하는 사용자의 권한으로 설치를 진행하므로, 다운로드한 스크립트를 hermes 사용자(예: sudo -u hermes bash hermes-install.sh)로 실행하면 파일이 사용자의 홈 디렉터리에 저장됩니다. 이는 권한이 없는 사용자로 서비스 실행하기에서 설명한 이유와 동일합니다. 에이전트가 실행되는 계정은 해당 에이전트가 손상을 입힐 수 있는 범위의 상한선이 됩니다. 운영체제 계정은 전체의 절반에 불과합니다. 에이전트 자체 설정이 확인 없이 수행할 작업의 범위를 결정하기 때문이며, 이는 사용자가 직접 앞에 앉아 있지 않은 환경에서 에이전트를 실행할 때 Claude Code의 권한 모드가 중요한 이유이기도 합니다. 만약 서버가 사용자 본인 외에 더 많은 사람을 지원해야 하는 상황이라면, OneCLI는 에이전트당 하나의 계정을 사용하는 개념을 팀 전체로 확장합니다. 이를 통해 각 개인에게 격리된 에이전트를 제공하면서도, 모델 키는 아무도 복사할 필요가 없는 단일 게이트웨이에 안전하게 보관할 수 있습니다.
서버 방화벽 설정 및 비밀 정보 격리
Hermes는 모델 및 연결된 채팅 앱에 직접 접근하여 작업을 수행하므로 인터넷에서 들어오는 인바운드 연결을 허용할 필요가 없습니다. 서버 앞단에 기본 거부(default-deny) 방화벽을 배치하십시오.
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableIPv6 방화벽의 허점을 주의하십시오. IPv4 규칙만 설정하면 IPv6를 통해 서비스가 노출될 수 있습니다. 에이전트가 NAS나 로컬 데이터베이스와 같이 홈 네트워크에만 존재하는 자원에 접근해야 한다면, 인바운드 포트를 여는 대신 서브넷 라우터를 사용하여 해당 네트워크를 tailnet에 광고함으로써 아웃바운드 연결을 통해 접근할 수 있습니다. 모델 API 키와 각종 채팅 토큰은 hermes 사용자만 읽을 수 있는 파일(권한 600)에 저장하고, 셸 기록에 남을 수 있는 명령줄에 직접 입력하는 대신 서비스에서 해당 파일을 불러오도록 설정하십시오. 이러한 비밀 파일은 자체 호스팅된 비밀번호 관리자의 관리자 토큰과 마찬가지로 작지만 가치가 높은 표적이 됩니다. Vaultwarden 강화 가이드의 논리는 여기에도 적용됩니다. 모든 것을 잠금 해제하는 단 하나의 파일을 보호하고, 그 백업본도 동일하게 엄격히 관리하십시오. 파일 권한은 서버 내 다른 사용자의 접근은 막을 수 있지만, 하부 인프라 제공자의 접근까지 막지는 못합니다. 에이전트가 보유한 키가 보안상 매우 중요하다면, 암호화된 메모리 및 증명 기술을 통해 호스팅 업체가 RAM에서 키를 읽어낼 수 있는지 여부를 결정해야 합니다.
Hermes를 강화된 systemd 서비스로 실행하기
systemd 유닛을 사용하면 로그아웃하거나 재부팅한 뒤에도 Hermes가 계속 실행되며, 충돌 시 자동으로 재시작됩니다. 또한 커널 수준의 샌드박스를 추가하여 프로세스가 접근할 수 있는 범위를 제한할 수 있습니다. NoNewPrivileges, ProtectSystem=strict, PrivateTmp, ProtectHome 설정을 활성화하여 침해 사고 발생 시 피해를 격리하십시오.
여기에서 강화된 유닛 파일을 생성한 뒤 /etc/systemd/system/hermes.service 경로에 복사하십시오. 이 유닛은 채팅 앱을 연결하는 장기 실행 프로세스인 hermes gateway을 시작합니다. 서비스를 활성화하기 전에 hermes --help 명령을 실행하여 해당 명령과 바이너리 경로가 현재 버전에서 올바른지 확인하십시오.
각 지시어와 daemon-reload 및 enable --now 단계에 대한 자세한 내용은 systemd 서비스로 프로그램 실행하기에서 다룹니다.
sudo systemctl daemon-reload
sudo systemctl enable --now hermes다른 에이전트에 동일한 패턴을 적용한 실습 예제는 dsh를 systemd에서 헤드리스로 실행하기를 참조하십시오. 해당 문서에서는 재시작 규칙과 서비스가 밤사이에 중단되었을 때 필요한 journalctl 명령을 더 자세히 설명합니다. 아침까지 기다리지 않고 즉시 확인하려면, Hermes의 재시작이 완전히 실패하는 즉시 휴대폰으로 알림을 보내는 ntfy 서버로 알림 푸시하기 설정을 적용한 OnFailure= 유닛을 사용하는 것이 좋습니다.
네이티브 설치 대신 컨테이너를 systemd로 관리하고 싶다면, KiroCrew를 고정된 컨테이너로 유지하기를 참조하십시오. 이 방법으로도 재부팅 후 서비스 유지라는 동일한 결과를 얻으면서 이미지 버전을 고정할 수 있습니다.
서버 보안 강화
마지막으로 서버의 출입문을 강화합니다. VPS의 SSH 보안 강화에서 설명한 대로 SSH 인증 방식을 키 기반으로 전환하고 root 로그인을 비활성화하여, 서버 관리용 계정을 추측할 수 없게 만듭니다. 지속적인 메모리를 유지하는 에이전트는 보호할 가치가 있으며, 가장 저렴한 보호 방법은 에이전트가 실행 중인 서버에 아무도 로그인할 수 없도록 만드는 것입니다.
서버 자체를 잠근 후, 가장 많이 추가하는 기능은 웹 검색입니다. SearXNG 인스턴스를 에이전트에 연결하면 검증되지 않은 페이지를 처리해야 하는 비용은 발생하지만, 검색 쿼리를 자신의 서버 내부에 유지할 수 있습니다. Hermes가 서버의 유일한 에이전트인 경우는 드뭅니다. 만약 Claude Code도 함께 실행 중이라면, 모든 작업을 사용자가 직접 중계하는 대신 두 세션이 서로 작업을 직접 전달하게 할 수 있습니다. 채팅 앱이 아닌 코드를 읽는 에이전트를 추가한다면, open-kritt 보안 스캔을 동일한 서버에서 실행하는 방식이 적합합니다. 이는 고정된 릴리스 버전 사용, 전용 계정 할당, 그리고 열린 포트 대신 SSH 터널을 통해 웹 UI에 접근하는 구조를 따릅니다.
패키지화된 에이전트를 실행하는 것보다 내부 구조를 이해하고 싶다면, VPS에서 직접 AI 에이전트 구축하기를 통해 단계별로 학습할 수 있습니다. 해당 가이드의 용어가 생소하다면, AI 에이전트 학습을 위한 단계별 경로를 참고하십시오. 루프, 도구, 메모리, 안전성 개념을 상호 의존적인 순서대로 다루므로 Hermes가 내리는 결정이 더 이상 마법처럼 느껴지지 않을 것입니다.
FAQ
저렴한 VPS에서 Hermes Agent를 실행할 수 있습니까?
네, 가능합니다. Hermes는 소규모 서버에서 실행되도록 설계되었으며, 5달러짜리 VPS로도 개인용 상시 가동 에이전트를 운영하기에 충분합니다. 대규모 트래픽을 처리하는 대신 언어 모델 및 채팅 앱과 통신하는 방식이므로 리소스 소모가 적습니다. 전용 사용자 계정을 생성하고 방화벽을 설정한 뒤 systemd 서비스로 등록하면 소형 VPS에서도 원활하게 작동합니다. 이미 가정용 서버를 운영 중이라면 하드웨어 사양과 전력 비용을 월 이용료와 비교해 보십시오. 가정용 Proxmox 서버와 임대형 VPS는 각각 장단점이 있습니다.
한 줄짜리 설치 스크립트를 실행해도 안전합니까?
curl | bash 설치 방식은 편리하지만, 스크립트를 내려받아 내용을 확인한 뒤 실행하는 습관을 들이는 것이 안전합니다. 또한 root 계정이 아닌 전용 사용자 계정으로 실행하십시오. 이렇게 하면 어떤 프로젝트의 설치 스크립트라도 해당 계정의 권한 범위 내에서만 동작하게 됩니다. 이는 Hermes에만 국한된 것이 아니라, 모든 소프트웨어 설치 시 권장되는 모범 사례입니다.
root 권한 없이 Hermes를 실행하려면 어떻게 해야 합니까?
로그인 셸이 없는 전용 시스템 사용자를 생성하고, /opt/hermes과 같이 해당 사용자가 소유한 디렉터리에 Hermes를 설치한 뒤 해당 계정으로 서비스를 실행하십시오. 에이전트가 침해되더라도 피해는 해당 계정이 접근할 수 있는 범위로 제한됩니다.
로그아웃 후에도 Hermes가 계속 실행되게 하려면 어떻게 해야 합니까?
systemd 서비스로 실행하십시오. unit 파일을 사용하면 부팅 시 Hermes가 자동으로 시작되고, 충돌 시 재시작되며, SSH 세션이 종료되어도 프로세스가 유지됩니다. 또한 systemd의 샌드박스 옵션을 통해 프로세스의 접근 권한을 제한할 수 있습니다. 위 도구로 보안이 강화된 unit 파일을 생성한 후 systemctl enable --now hermes 명령어로 활성화하십시오.
Hermes Agent를 실행하려면 GPU가 필요합니까?
아니요, 필요하지 않습니다. Hermes는 에이전트 런타임일 뿐 언어 모델 자체가 아니므로 CPU만 있는 소형 VPS에서도 잘 작동합니다. 연산 부하가 큰 작업은 모델이 실행되는 곳에서 처리되며, 보통은 연결된 호스팅 API를 사용합니다. 만약 같은 서버에서 모델까지 직접 호스팅하려 한다면, Hermes가 아닌 모델의 요구 사양에 맞춰 서버를 구성하십시오. CPU 전용 모델 호스팅에 관한 내용은 Ollama 가이드의 수치를 참고하십시오.