Files
obsidian/infra/sftpgo.md

1.9 KiB

title, updated, tags
title updated tags
SFTPGo (SFTP/SSH 서버) 2026-03-27
infra
sftp
ssh
k3s

개요

SFTPGo - 고객용 SFTP/SSH/WebDAV 서버. 사용자 관리, 키 관리, 웹 파일 관리 UI 내장.

배포 정보

K3s 클러스터(kr3 컨텍스트)에 Helm으로 설치 (2026-03-27)

항목
Namespace sftpgo
Chart oci://ghcr.io/sftpgo/helm-charts/sftpgo 0.44.0
App SFTPGo 2.7.1
SFTP LoadBalancer 192.168.9.55:22
Web UI 8080 (Traefik HTTPRoute 경유)
Storage Longhorn 1Gi (SQLite DB)
관리자 Vault secret/apps/sftpgo (admin_user, admin_password)

외부 접근 경로

웹 UI (HTTPS)

sftp.inouter.com → Cloudflare (proxied) → 220.120.65.245
  → OpenWrt HAProxy :443 → Traefik 192.168.9.53:443
  → HTTPRoute → SFTPGo 8080

SFTP (포트 22)

sftp.inouter.com:22 (또는 52.79.45.166:22)
  → relay4wd:22 → iptables REDIRECT :9022
  → APISIX stream_route → 192.168.9.55:22
  → SFTPGo Pod

웹 UI

URL 용도
https://sftp.inouter.com/web/admin 관리자 - 사용자/설정 관리
https://sftp.inouter.com/web/client 고객 - 파일 업로드/다운로드, 패스워드 변경

API

# 토큰 발급
TOKEN=$(curl -s https://sftp.inouter.com/api/v2/token -u 'kaffa:패스워드' | jq -r .access_token)

# 사용자 목록
curl -s -H "Authorization: Bearer $TOKEN" https://sftp.inouter.com/api/v2/users

# 사용자 생성
curl -s -X POST https://sftp.inouter.com/api/v2/users \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"username":"user1","password":"pass","status":1,"home_dir":"/srv/sftpgo/data/user1","permissions":{"/":["*"]}}'

관련 문서

  • apisix - relay4wd stream_route로 SFTP 포워딩
  • sshpiper - SSH 리버스 프록시 (내부 서버 접근용)
  • teleport - 관리자 SSH/K8s 접근 관리