1. 설치
요구 사항: Windows 10/11 또는 Windows Server 2016 이상(64bit). 추가 런타임 설치는 필요 없습니다.
설치 관리자로 설치 (권장)
- SmartSFTP-Setup-1.2.0.exe 를 내려받아 실행합니다. (관리자 권한 필요)
- 사용권 계약에 동의하고 설치 옵션을 선택합니다. (방화벽 규칙 · 트레이 자동 실행 · 바탕화면 바로가기)
- SFTP 포트를 지정합니다. (기본 2222) 웹 관리 UI 관리자 비밀번호는 이 단계에서 함께 설정하거나 나중에 지정할 수 있습니다.
- 설치를 마치면 서비스가 등록·시작되고 트레이 아이콘이 실행됩니다.
설치 관리자가 자동으로 처리하는 항목:
- 프로그램 파일 설치 (
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초마다 자동 갱신됩니다.
조작
| 동작 | 결과 |
|---|---|
| 왼쪽 클릭 | 웹 관리 UI 열기 (설정 화면) |
| 오른쪽 클릭 | 메뉴 표시 — 서비스 시작 / 중지 / 재시작, 라이선스 정보, 설정 폴더 열기, 로그 폴더 열기, 트레이 종료 |
^ (숨겨진 아이콘 표시)를 눌러 확인하거나, 설정 → 개인 설정 → 작업 표시줄에서 항상 표시로 지정하세요.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. 웹 관리 UI
- 관리자 비밀번호 설정:
smartsftp.exe config set webui.admin_hash 관리자비밀번호(bcrypt 해시로 저장됨) smartsftp-gui.exe실행 → 브라우저에서http://127.0.0.1:8443접속 (기본 계정admin)
웹 UI에서 사용자 추가·수정·삭제, 권한·허용 IP 설정, 서비스 시작·중지, 호스트키 지문 확인을 처리할 수 있습니다.
8. 설정 레퍼런스
설정 파일: C:\ProgramData\SmartSFTP\smartsftp.json · 현재 값 확인: smartsftp.exe config show
| 항목 | 기본값 | 설명 |
|---|---|---|
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.listen_addr | 127.0.0.1:8443 | 웹 관리 UI 주소 (localhost 전용) |
logging.level | info | 로그 레벨 (debug / info / warn / error) |
logging.max_size_mb | 50 | 로그 파일 크기 상한 — 초과 시 .old 로 순환 |
logging.enable_event_log | true | Windows 이벤트로그 기록 |
logging.log_file_ops | true | 파일 작업(업로드·삭제 등) 로그 기록 |
config set 으로 바꿀 수 있는 항목: listen_addr, webui.listen_addr, webui.admin_user, webui.admin_hash. 그 외 항목은 설정 파일을 직접 수정한 뒤 서비스를 재시작하세요. 계정별 허용 IP(ip_whitelist)와 세부 권한은 웹 UI에서 설정합니다.
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\smartsftp.log— 접속·인증·파일 작업이 JSON 한 줄씩 기록됩니다. 크기 상한 초과 시smartsftp.log.old로 순환됩니다. - 이벤트로그: 이벤트 뷰어 → 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","path":"/report.xlsx"}
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\ 를 남겨두세요. 호스트키가 유지되어 클라이언트의 호스트키 변경 경고를 피할 수 있습니다.