sitelink1  
sitelink2  
sitelink3  
sitelink4  
extra_vars5  
extra_vars6  

아래 문서는 Windows 11 Pro의 OpenSSH 기반 SFTP 서버에서, FTP 서비스 용도로만 쓰는 SFTP 전용 계정을 만들고(생성), 바꾸고(수정), 없애는(삭제) 표준 운영 절차서(SOP) 입니다.
(※ “전용”이므로 쉘/원격명령 불가, SFTP만 허용, 홈 디렉터리 격리를 기본 정책으로 합니다.)


1) 범위 / 전제

  • 대상: Windows 11 Pro + OpenSSH Server (sshd)

  • 계정 유형: 로컬 사용자(Local user) 권장 (도메인 사용 시 절차 동일하나 그룹정책/권한은 AD에서 병행)

  • SFTP만 허용: sshd_configMatch 블록 + ForceCommand internal-sftp 사용

  • 홈 디렉터리 예시: D:\SFTP\<계정명> (운영 환경에 맞춰 드라이브/경로 조정)


2) 표준 정책

  • 암호/키 인증: 기본은 키 기반 인증 권장, 비밀번호는 정책에 맞게(길이/복잡도/주기)

  • 권한(ACL): 홈 폴더는 해당 사용자 + Administrators만 접근, 상위 폴더는 읽기 제한

  • 로그/감사: Windows 이벤트 로그(“OpenSSH/Operational”)와 접근 로그 중앙수집(선택)

  • 변경 관리: C:\ProgramData\ssh\sshd_config 변경 전 백업, 변경 후 테스트 → 재시작


3) 사전 점검 (공통)

# OpenSSH Server 설치/상태
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Get-Service sshd

# 포트 오픈 확인(22/TCP)
Test-NetConnection -ComputerName localhost -Port 22

4) 생성 절차 (Create)

4.1 로컬 사용자 생성

# 관리자 PowerShell 실행
$User = "sftp_jinie"         # 예시 계정명
$Pass = Read-Host "New password" -AsSecureString
New-LocalUser -Name $User -Password $Pass -NoPasswordNeverExpires:$true -AccountNeverExpires:$true -Description "SFTP 전용 계정"
# (원하면) Users 그룹에만 포함되도록 확인
Add-LocalGroupMember -Group "Users" -Member $User

운영 정책상 대화형 로그온 금지가 필요하면 로컬 보안 정책(GPO)에서 “로컬 로그온 거부”에 계정을 추가하세요.

4.2 홈 디렉터리/권한 준비

$Home = "D:\SFTP\$User"
New-Item -ItemType Directory -Path $Home -Force | Out-Null

# 상위 루트(D:\SFTP)는 목록만 가능하게, 각 홈은 본인만 풀권한
icacls "D:\SFTP" /inheritance:r /grant:r "Administrators:(OI)(CI)(F)" "SYSTEM:(OI)(CI)(F)" /T
icacls $Home /inheritance:r /grant:r "$User:(OI)(CI)(F)" "Administrators:(OI)(CI)(F)" "SYSTEM:(OI)(CI)(F)"

4.3 키 기반 인증(권장)

# 사용자 프로필 경로
$ProfileRoot = (Get-LocalUser $User).SID | ForEach-Object {
    (Get-Item "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$_").GetValue("ProfileImagePath")
}
$SshDir = Join-Path $ProfileRoot ".ssh"
New-Item -ItemType Directory -Path $SshDir -Force | Out-Null

# 공개키 등록(아래는 예시; 실제 공개키로 교체)
$PubKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEXAMPLEexampleEXAMPLE user@host"
$Auth = Join-Path $SshDir "authorized_keys"
$PubKey | Out-File -FilePath $Auth -Encoding ascii -Force

# .ssh/authorized_keys 권한 600 스타일
icacls $SshDir /inheritance:r /grant:r "$User:(OI)(CI)(F)" "Administrators:(OI)(CI)(F)" "SYSTEM:(OI)(CI)(F)"
icacls $Auth   /inheritance:r /grant:r "$User:(R,W)" "Administrators:(F)" "SYSTEM:(F)"

4.4 SFTP 전용 강제 (sshd_config)

  1. 백업

Copy-Item "C:\ProgramData\ssh\sshd_config" "C:\ProgramData\ssh\sshd_config.bak_$(Get-Date -Format yyyyMMddHHmmss)"
  1. 설정 파일에 Subsystem / Match 블록 추가(또는 존재 시 병합)

# C:\ProgramData\ssh\sshd_config

# SFTP 서브시스템(권장: internal-sftp)
Subsystem sftp internal-sftp

# SFTP 전용 계정 정책
Match User sftp_jinie
    ForceCommand internal-sftp -d "D:/SFTP/sftp_jinie"
    PasswordAuthentication yes
    PubkeyAuthentication yes
    # 필요 시 셸/포워딩 제한
    AllowTcpForwarding no
    X11Forwarding no

여러 전용계정 운영 시 Match User에 공백 구분 다중 지정 가능(예: Match User user1,user2,user3)
시작 디렉터리 -d는 따옴표/경로 구분자 주의(Windows 경로는 / 또는 이스케이프된 \ 모두 가능)

  1. 서비스 재시작 & 테스트

Restart-Service sshd
# 로컬에서 테스트 (키/비번 둘 다)
sftp sftp_jinie@localhost

5) 수정 절차 (Modify)

5.1 비밀번호 변경

$User = "sftp_jinie"
$NewPass = Read-Host "New password" -AsSecureString
Set-LocalUser -Name $User -Password $NewPass

5.2 공개키 교체/추가

$Auth = "C:\Users\sftp_jinie\.ssh\authorized_keys"
notepad $Auth     # 키 추가/삭제
# 저장 후 권한 재확인
icacls $Auth /inheritance:r /grant:r "sftp_jinie:(R,W)" "Administrators:(F)" "SYSTEM:(F)"

5.3 홈 디렉터리 변경

  1. 새 디렉터리 생성/권한 부여 → 데이터 마이그레이션

  2. sshd_configMatch User ... -d "새경로" 수정 → 백업 후 저장

  3. Restart-Service sshd → 접속 테스트

5.4 접속 제한/해제 (임시 잠금)

# 계정 비활성화
Disable-LocalUser -Name "sftp_jinie"
# 재활성화
Enable-LocalUser -Name "sftp_jinie"

또는 sshd_config의 해당 Match 블록을 주석처리/삭제 후 재시작으로 차단(정책적).


6) 삭제 절차 (Delete)

6.1 사전 백업/차단

  • 데이터 보존 정책에 따라 홈 디렉터리 ZIP/이관

  • Disable-LocalUser 로 즉시 잠금 → 운영 승인 후 최종 삭제

6.2 사용자/리소스 삭제

# 서비스 중지 필요 없음(권장: 업무 비시간)
Remove-LocalUser -Name "sftp_jinie"

# 홈 폴더/키 파일 정리(정책에 따라 보존/삭제)
Remove-Item -Recurse -Force "D:\SFTP\sftp_jinie"
# sshd_config Match 블록 제거 후 재시작
Restart-Service sshd

7) 점검 체크리스트

  • sshd 서비스 실행/자동시작

  • 포트 22 열림(방화벽 규칙 OpenSSH-Server-In-TCP)

  • sshd_config 백업·버전관리, Subsystem sftp internal-sftp 존재

  • Match User <계정> 블록에 ForceCommand internal-sftp 설정

  • 홈 디렉터리 권한: 계정/Administrators/SYSTEM만

  • .ssh\authorized_keys 권한 600 스타일 유지

  • 테스트: sftp <계정>@localhost 업/다운로드 정상

  • 이벤트 로그(OpenSSH/Operational) 오류 없는지 확인


8) 운영 팁

  • 여러 계정 공통 정책Match Group sftp_users로 묶고, 로컬 그룹 sftp_users에 사용자 추가해서 관리하면 편합니다.

  • FTPS(FTP over TLS) 대신 SFTP를 쓰면 방화벽·NAT·인증이 단순해지므로 운영 비용↓.

  • 외부망 노출 시 키 인증 강제, 비밀번호 인증 비활성화(+ 2FA/보안장비) 권장:

    PasswordAuthentication no
    PubkeyAuthentication yes
    
  • 대규모 환경은 폴더/권한/Match 블록을 스크립트화(PowerShell) 해 템플릿 자동화 권장.


 

 

번호 제목 sitelink1 글쓴이 날짜 조회 수
공지 [계속 추가중] SBOM 용어 정의   황제낙엽 2025.04.10 465
공지 [계속 추가중] Keycloak 용어 및 설정 옵션 정의   황제낙엽 2024.02.02 1046
» Windows 11 Pro의 OpenSSH 기반 SFTP 서버 전용 사용자 계정 관리   황제낙엽 2025.11.07 21
31 FileZilla Server 에서 기존 TLS 인증서로 SSL 설정 (v1.11.1 기준) https://www.youtube.com/watch?v=z7mzSyymZ9U  황제낙엽 2025.11.05 28
30 OpenSSL 설치   황제낙엽 2024.11.12 186
29 서버의 인증서 파일을 갱신후 브라우저의 인증서 뷰어에서 새 인증서 정보가 조회되지 않을 경우   황제낙엽 2024.08.23 183
28 SSL 인증서 파일 포맷 종류 - crt, cer, csr, pem, der, pfx, p12, jks, key https://www.securesign.kr/guides/kb/54  황제낙엽 2020.07.20 226
27 SNI 기반 HTTPS 사이트 차단 file https://blog.naver.com/aepkoreanet/221465526990  황제낙엽 2020.03.04 234
26 사설인증서 공인인증서 구분 방법 file   황제낙엽 2019.07.16 234
25 Convert Certificate Format SSL 인증서 변환 가이드 https://www.securesign.kr/guides/SSL-Cer...ert-Format  황제낙엽 2019.03.29 276
24 *.key와 *.crt를 PKCS#12(*.pfx, *.p12)로 형식으로 변환하기 https://www.eznbiz.co.kr/help/qna/content/3  황제낙엽 2019.03.29 299
23 HOWTO: DER vs. CRT vs. CER vs. PEM Certificates and How To Convert Them http://info.ssl.com/article.aspx?id=12149  황제낙엽 2019.03.29 1013
22 How to convert a certificate file from .crt to .cer? file https://www.sonicwall.com/support/knowle...597576961/  황제낙엽 2019.03.29 3543
21 국내(KOREA) IP 사용 대역 file http://www.domain.kr  황제낙엽 2019.02.21 461
20 서버 보안 관리를 위한 백업과 점검 절차   황제낙엽 2017.05.30 253
19 정보 보안 개론 : 네이버 지식백과 http://terms.naver.com/list.nhn?cid=5843...ryId=58437  황제낙엽 2017.05.19 291
18 개발용 tomcat 운용시 tomcat-users.xml 의 관리 주의   황제낙엽 2017.04.07 449
17 윈도우 원격데스크톱(RDP) 접근 이력 조회 file http://skylit.tistory.com/196  황제낙엽 2017.04.06 327
16 SSL, TLS, OpenSSL 관련 http://kin.naver.com/qna/detail.nhn?d1id...K9fw%3D%3D  황제낙엽 2015.12.31 341
15 운영 모드 ( Mode of Operation )   황제낙엽 2013.03.07 420
14 암호화 알고리즘 스크랩   황제낙엽 2012.08.28 3160
13 미연방 표준 암호 알고리즘 http://rustican.com/board/zboard.php?id=paper&no=140  황제낙엽 2010.05.21 370