1. 설치
요구 사항: Windows 10/11 또는 Windows Server 2016 이상(64bit). 추가 런타임 설치는 필요 없습니다.
설치 관리자로 설치 (권장)
- SmartSFTP-Setup-1.5.1.exe 를 내려받아 실행합니다. (관리자 권한 필요)
- 사용권 계약에 동의하고 설치 옵션을 선택합니다. (방화벽 규칙 · 트레이 자동 실행 · 바탕화면 바로가기)
- SFTP 포트를 지정합니다. (기본 2222) 관리 프로그램 관리자 비밀번호는 이 단계에서 함께 설정하거나 나중에 지정할 수 있습니다.
- 설치를 마치면 서비스가 등록·시작되고 트레이 아이콘이 실행됩니다.
설치 관리자가 자동으로 처리하는 항목:
- 프로그램 파일 설치 (
C:\Program Files\SmartSFTP\) - 기본 설정 생성 및 지정한 포트 적용
- Windows 서비스 "SmartSFTP Server" 등록 + 시작 (부팅 시 자동 시작)
- 방화벽 인바운드 허용 규칙 추가 (선택 시)
- 로그온 시 트레이 아이콘 자동 실행 등록 (선택 시)
설치 후에는 사용자만 추가하면 바로 사용할 수 있습니다.
smartsftp.exe useradd user1 --password 비밀번호
압축본으로 수동 설치
설치 관리자를 쓸 수 없는 환경에서는 zip을 해제하고 아래 명령을 순서대로 실행합니다. (관리자 권한 명령 프롬프트)
smartsftp.exe config init :: 기본 설정 파일 생성 smartsftp.exe useradd user1 --password 비밀번호 smartsftp.exe install :: Windows 서비스 등록 (자동 시작) smartsftp.exe start :: 서비스 시작
설정·데이터는 C:\ProgramData\SmartSFTP\ 에 저장되므로 실행 파일 폴더를 옮겨도 설정은 유지됩니다.
netsh advfirewall firewall add rule name="SmartSFTP" dir=in action=allow protocol=TCP localport=22222. 라이선스
라이선스 키를 등록하지 않으면 최초 설치일로부터 30일간 평가판으로 동작합니다. 평가 기간이 끝나면 신규 SFTP 접속이 거부되며, 이미 연결된 세션은 유지됩니다. 서비스 자체는 계속 실행되므로 키를 등록하면 즉시 정상 운영으로 돌아옵니다.
| 명령 | 설명 |
|---|---|
license show | 현재 라이선스 / 평가 기간 상태와 잔여 일수 확인 |
license set <키> | 라이선스 키 등록 (서명 검증 후 저장) |
smartsftp.exe license show
smartsftp.exe license set SFTP1-xxxxx.yyyyy
:: 등록 후 서비스 재시작
smartsftp.exe stop
smartsftp.exe start
라이선스는 오프라인 서명 검증 방식으로, 인증을 위한 외부 통신이 전혀 없습니다. 폐쇄망에서도 그대로 동작합니다. 키 등록은 명령 대신 트레이 아이콘 메뉴 또는 관리 프로그램의 "라이선스 등록" 화면에서도 할 수 있으며(입력 후 서비스 재시작까지 안내), 라이선스 상태는 트레이 메뉴의 "라이선스 정보"에서 확인할 수 있습니다.
3. 트레이 아이콘
알림 영역(작업 표시줄 오른쪽)의 아이콘으로 서비스 상태를 확인하고 제어합니다. 설치 시 "트레이 자동 실행"을 선택했다면 로그온할 때 자동으로 실행되며, 수동 실행은 smartsftp-tray.exe 입니다.
아이콘 색상
| 색상 | 상태 |
|---|---|
| 초록 | 서비스 실행 중 |
| 회색 | 서비스 중지됨 |
| 주황 | 시작·중지 전환 중 또는 라이선스 주의(평가 기간 만료 등) |
| 빨강 | 서비스 미설치 또는 상태 확인 불가 |
아이콘에 마우스를 올리면 상태·수신 주소·라이선스 상태가 툴팁으로 표시됩니다. 상태는 3초마다 자동 갱신됩니다.
조작
| 동작 | 결과 |
|---|---|
| 왼쪽 더블클릭 | 관리 프로그램 열기 (설정 화면) |
| 오른쪽 클릭 | 메뉴 표시 — 서비스 시작 / 중지 / 재시작, 라이선스 등록, 라이선스 정보, 설정 폴더 열기, 로그 폴더 열기, 트레이 종료 |
^ (숨겨진 아이콘 표시)를 눌러 확인하거나, 설정 → 개인 설정 → 작업 표시줄에서 항상 표시로 지정하세요.4. 초기 설정
포트 변경
smartsftp.exe config set listen_addr 0.0.0.0:50000 smartsftp.exe stop smartsftp.exe start
호스트키
최초 실행 시 ed25519·RSA 4096 호스트키가 자동 생성됩니다. 지문 확인:
smartsftp.exe config hostkeys
호스트키 파일(C:\ProgramData\SmartSFTP\host_ed25519, host_rsa)을 삭제하지 않는 한 키는 유지됩니다. 키가 바뀌면 모든 클라이언트에서 접속 경고가 발생하므로 서버 이전 시에는 키 파일을 함께 복사하세요.
5. 사용자 관리
사용자명은 영문자·숫자로 시작하고 . _ - 를 포함해 최대 64자입니다.
| 명령 | 설명 |
|---|---|
useradd <계정> --password <비밀번호> | 사용자 추가. --home <경로> 홈 디렉터리 지정(기본 data\<계정>), --readonly 읽기전용 |
usermod <계정> --password <비밀번호> | 비밀번호 변경. --home 홈 변경, --disable / --enable 계정 잠금·해제 |
userdel <계정> | 사용자 삭제 (홈 디렉터리 파일은 남음) |
userlist | 사용자 목록 (--json JSON 출력) |
사용자 변경은 서비스 재시작 없이 즉시 반영됩니다. 각 사용자는 자신의 홈 디렉터리 밖으로 이동할 수 없습니다.
6. 서비스 운영
| 명령 | 설명 |
|---|---|
install / uninstall | Windows 서비스 등록 / 해제 (관리자 권한) |
start / stop / status | 서비스 시작 / 중지 / 상태 확인 (관리자 권한 필요 — 트레이 아이콘에서도 제어 가능) |
run | 서비스 대신 포그라운드 실행 (테스트·디버그용) |
version | 버전 확인 |
서비스는 부팅 시 자동 시작하며, 비정상 종료 시 5초·15초 간격으로 자동 재시작합니다.
7. 관리 프로그램
v1.3부터 관리 화면이 브라우저 기반 웹 UI에서 윈도우 응용프로그램으로 바뀌었습니다. 웹서버·브라우저 없이 창 하나로 동작합니다.
- 관리자 비밀번호 설정:
smartsftp.exe config set webui.admin_hash 관리자비밀번호(bcrypt 해시로 저장됨 · 설치 관리자에서 설정했다면 생략) - 시작 메뉴 "SmartSFTP 관리 UI" 또는
smartsftp-gui.exe실행 → UAC 승인 → 관리자 계정으로 로그인 (기본 계정admin)
관리 프로그램에서 처리할 수 있는 작업:
| 탭·영역 | 기능 |
|---|---|
| 서비스 상태 (상단) | 실행 상태·PID 표시(3초 자동 갱신), 서비스 시작·중지 |
| 사용자 | 계정 추가·수정·삭제, 활성/비활성, 읽기·쓰기·삭제·이름변경·폴더생성·목록조회 권한, 접속 허용 IP, 홈 디렉터리 지정(폴더 찾아보기) |
| 설정 | 포트·최대 접속·유휴 시간, 관리자 계정·비밀번호 변경, 로그인 차단, 로그·syslog 를 폼에서 편집·저장 (저장 후 서비스 재시작 안내) · 설정 파일 열기 |
| 호스트 키 | ed25519·RSA 호스트키 지문 확인 |
8. 설정 레퍼런스
설정 파일: C:\ProgramData\SmartSFTP\smartsftp.json · 현재 값 확인: smartsftp.exe config show — 주요 항목(서버·관리자·차단·로그·syslog)은 관리 프로그램의 설정 탭에서 편집할 수 있습니다.
| 항목 | 기본값 | 설명 |
|---|---|---|
listen_addr | 0.0.0.0:2222 | SFTP 수신 주소:포트 |
license_key | (없음) | 라이선스 키 — 미설정 시 30일 평가판 (license set 으로 등록) |
max_connections | 100 | 최대 동시 접속 수 |
idle_timeout | 10m | 유휴 연결 자동 종료 시간 (0 = 무제한) |
rate_limit | 10회 / 10분 / 60초 차단 | 로그인 실패 IP 차단 — 횟수·window·차단 시간 |
web_ui.admin_user · admin_hash | admin · (없음) | 관리 프로그램 로그인 계정·비밀번호 (config set webui.admin_hash 로 설정, bcrypt 저장) |
logging.level | info | 로그 레벨 (debug / info / warn / error) |
logging.max_size_mb | 50 | 하루 로그 파일 크기 상한 — 초과 시 _2, _3 순번 파일로 이어짐 |
logging.enable_event_log | true | Windows 이벤트로그 기록 |
logging.log_file_ops | true | 파일 작업(업로드·삭제 등) 로그 기록 — 권한 거부 시도는 이 설정과 무관하게 항상 기록 |
logging.syslog | (꺼짐) | 외부 syslog 전송 — enabled · address(host:port) · protocol(udp/tcp) · facility(기본 16=local0) · tag |
config set 으로 바꿀 수 있는 항목: listen_addr, webui.listen_addr, webui.admin_user, webui.admin_hash. 그 외 항목은 설정 파일을 직접 수정한 뒤 서비스를 재시작하세요. 계정별 허용 IP(ip_whitelist)와 세부 권한은 관리 프로그램에서 설정합니다.
9. 클라이언트 접속
표준 SFTP 클라이언트(WinSCP, FileZilla, OpenSSH sftp 등)로 접속합니다.
| 클라이언트 | 설정 |
|---|---|
| WinSCP | 프로토콜 SFTP · 호스트 서버IP · 포트 2222 · 계정/비밀번호 |
| FileZilla | 호스트 sftp://서버IP · 포트 2222 |
| 명령줄 | sftp -P 2222 user1@서버IP |
최초 접속 시 표시되는 호스트키 지문을 config hostkeys 결과와 대조해 승인하세요.
10. 로그·모니터링
- 파일 로그:
C:\ProgramData\SmartSFTP\logs\연\월\YYYY-MM-DD.log— 일자별 파일로 기록됩니다(예:logs\2026\08\2026-08-10.log). 서버 시작 시 폴더가 자동 생성되고, 날짜가 바뀌면 새 파일로 넘어갑니다. 하루 파일이 크기 상한을 넘으면_2,_3순번 파일로 이어집니다. - 기록 내용: 접속·인증(성공/실패, IP 차단)과 파일 작업 — 접속 IP·계정·행위(read/write/remove/rename/mkdir/list)·대상 경로가 JSON 한 줄씩 남습니다. 권한이 없어 거부된 시도는
operation denied로 사유와 함께 항상 기록됩니다. - syslog 전송: 설정에서 켜면 같은 로그를 외부 syslog 서버로도 전송합니다(RFC 3164, UDP/TCP). 수집 서버 장애 시에도 서비스는 영향 없이 로컬 기록을 계속합니다.
- 이벤트로그: 이벤트 뷰어 → Windows 로그 → 응용 프로그램, 원본
SmartSFTP— 서비스 시작·중지·오류가 기록됩니다. - 서비스 상태:
smartsftp.exe status또는services.msc의 SmartSFTP Server.
:: 로그 예시 — 인증 성공, 파일 업로드, 권한 거부
{"time":"...","level":"INFO","msg":"auth success","user":"user1","ip":"10.0.0.5"}
{"time":"...","level":"INFO","msg":"file write","user":"user1","ip":"10.0.0.5","path":"/report.xlsx"}
{"time":"...","level":"WARN","msg":"operation denied","user":"user1","ip":"10.0.0.5","op":"remove","path":"/report.xlsx","reason":"no delete permission"}
:: syslog 전송 설정 예시 (smartsftp.json 의 logging 섹션, 수정 후 서비스 재시작)
"syslog": { "enabled": true, "address": "192.168.0.10:514", "protocol": "udp", "facility": 16, "tag": "smartsftp" }
11. 문제 해결
| 증상 | 확인 사항 |
|---|---|
| 외부에서 접속이 안 됨 | Windows 방화벽 인바운드 규칙(1장 참고), 공유기·상위 방화벽의 포트 개방, listen_addr 이 127.0.0.1 로 제한돼 있지 않은지 확인 |
| 로그인이 계속 실패 | 로그의 auth failed 확인. 실패 반복으로 IP가 차단된 경우 기본 60초 후 자동 해제. 계정이 disabled 상태인지 userlist 로 확인 |
| 클라이언트가 호스트키 변경 경고 | 서버 재설치 등으로 키가 바뀐 경우. config hostkeys 지문과 대조 후 클라이언트 캐시 갱신. 서버 이전 시 키 파일을 함께 복사하면 예방 가능 |
| 서비스가 시작되지 않음 | 이벤트로그(원본 SmartSFTP) 오류 확인. 포트 중복 사용 여부: netstat -ano | findstr :2222 |
status 명령이 Access denied | 서비스 제어(SCM) 조회는 관리자 권한 프롬프트에서 실행. 트레이 아이콘은 일반 권한으로도 상태를 표시함 |
| 접속이 갑자기 모두 거부됨 | 평가 기간(30일) 종료 여부 확인: smartsftp.exe license show. 로그에 connection rejected (license) 가 기록됨. 라이선스 키 등록 후 서비스 재시작 |
| 트레이 아이콘이 보이지 않음 | 알림 영역의 ^(숨겨진 아이콘) 확인. 미실행 시 설치 폴더의 smartsftp-tray.exe 직접 실행 |
12. 제거
설치 관리자로 설치한 경우 설정 → 앱 → 설치된 앱에서 SmartSFTP를 제거합니다. 트레이 종료, 서비스 중지·해제, 방화벽 규칙 삭제, 자동 실행 등록 해제가 자동으로 처리됩니다.
수동 설치한 경우 아래 명령으로 서비스를 해제한 뒤 실행 파일 폴더를 삭제합니다.
smartsftp.exe stop smartsftp.exe uninstall
어느 방식이든 설정·사용자 데이터는 보존됩니다. 완전히 지우려면 C:\ProgramData\SmartSFTP\ 폴더를 삭제하세요. 사용자 홈 디렉터리를 다른 위치로 지정했다면 해당 파일은 남습니다.
C:\ProgramData\SmartSFTP\ 를 남겨두세요. 호스트키가 유지되어 클라이언트의 호스트키 변경 경고를 피할 수 있습니다.