windows 11 에서 sftp 개발을 할 일이 생겼다.

별도 개발서버도 없고 하니 그냥 개인 노트북에 sftp 서비스를 열고, 관련된 계정을 생성하면 될 것이라 대충 예상하고 구글링을 시작. 다음과 같은 순서대로 sftp 서비스를 windows11 에서 구동했다.

 

1. sftp 관련 windows 추가프로그램 설치

노란색 색칠한거 다 설치함

 

제어판 > 프로그램 및 기능 > Windows 기능 켜기/끄기 메뉴에서 위와 같은 노란색의 항목들을 모두 설치했다. 그런데 이것만으로는 안열리길래, 좀 더 찾아보니 다음과 같은것도 설치해야 하더라.

 

 

설정 > 시스템 > 선택적기능 메뉴에서 OpenSSH 서버 및 OpenSSH 클라이언트를 모두 설치했다. 비로소 서비스를 구동할 준비가 된 셈.

 

2. sftp 전용 계정 생성

컴퓨터 관리 > 로컬사용자 및 그룹 > 사용자 에서 오른클릭을 통해 새 사용자를 만들어준다.

이 때 사용자 이름 및 암호/암호확인은 자신의 취향껏 작성해주고, 귀찮지 않으려면 '암호사용기간 제한없음' 옵션을 추가하자. 어차피 로컬 개발용이니까 개발하는데는 문제는 없다.

 

새로 만들어준 계정에 IIS_IUSRS 그룹권한을 넣어준다. 이 부분은 깊게 파보진 않았는데 IIS_IUSRS쪽이 IIS 서비스를 담당하는 그룹 권한인 것으로 추정된다. 아무튼, 이 계정으로 이제 sftp를 접속할 수 있는 셈.

 

3. sftp 서비스 시작

OpenSSH Server 시작

서비스 메뉴로 들어가서 OpenSSH Server 를 실행하자. 이제 기본포트(sftp의 경우 22) 로 서버가 구동된 셈이다.

 

Windows Powershell을 통해 sftp sftpUser@localhost 명령어를 입력하면 sftp에 접속된 것을 확인할 수 있다. 

이로써 sftp 서비스 구동은 끝.

 

IIS 서비스 쪽에서 sftp 바인딩을 18800으로 해줬는데도 접속을 못하길래  삽질하다가 알고보니 기본포트로 서비스가 열린것을 확인했다. 18800 포트로 어떻게 바꾸는거지? 이걸 좀 더 찾아봤다.

 

4. sftp 서비스 포트 변경

C:\ProgramData\ssh 디렉토리에 sshd_config 라는 파일이 존재하고, 이를 열어보면 다음과 같이 설정됨을 확인할 수 있다.

 

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

 

주석으로 막혀있다는 것은 기본으로 설정된 것이 22 라는거고, 이걸 18800 으로 바꾸고 주석을 해제하면 잘 되겠지? 한 번 해보자.

 

관리자 권한을 요구하길래, 메모장 프로그램을 오른클릭 > 관리자권한 으로 실행한 다음 sshd_config 파일을 열어 수정했다.

 

그리고 서비스 > OpenSSH SSH Server를 재시작!

 

테스트용 소스코드가 정상적으로 동작됨을 확인했다.

Powershell 에서 sftp 접속하는 명령어는 sftp -P port userId@host 가 된다. ㅋㅋㅋ 잘 되네 .

블로그 이미지

김생선

세상의 모든것을 어장관리

,