windows 11 에서 sftp 개발을 할 일이 생겼다.
별도 개발서버도 없고 하니 그냥 개인 노트북에 sftp 서비스를 열고, 관련된 계정을 생성하면 될 것이라 대충 예상하고 구글링을 시작. 다음과 같은 순서대로 sftp 서비스를 windows11 에서 구동했다.
1. sftp 관련 windows 추가프로그램 설치
제어판 > 프로그램 및 기능 > Windows 기능 켜기/끄기 메뉴에서 위와 같은 노란색의 항목들을 모두 설치했다. 그런데 이것만으로는 안열리길래, 좀 더 찾아보니 다음과 같은것도 설치해야 하더라.
설정 > 시스템 > 선택적기능 메뉴에서 OpenSSH 서버 및 OpenSSH 클라이언트를 모두 설치했다. 비로소 서비스를 구동할 준비가 된 셈.
2. sftp 전용 계정 생성
컴퓨터 관리 > 로컬사용자 및 그룹 > 사용자 에서 오른클릭을 통해 새 사용자를 만들어준다.
이 때 사용자 이름 및 암호/암호확인은 자신의 취향껏 작성해주고, 귀찮지 않으려면 '암호사용기간 제한없음' 옵션을 추가하자. 어차피 로컬 개발용이니까 개발하는데는 문제는 없다.
새로 만들어준 계정에 IIS_IUSRS 그룹권한을 넣어준다. 이 부분은 깊게 파보진 않았는데 IIS_IUSRS쪽이 IIS 서비스를 담당하는 그룹 권한인 것으로 추정된다. 아무튼, 이 계정으로 이제 sftp를 접속할 수 있는 셈.
3. sftp 서비스 시작
서비스 메뉴로 들어가서 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 가 된다. ㅋㅋㅋ 잘 되네 .
'어장 Develop' 카테고리의 다른 글
[Python] 디렉토리 참조법 (0) | 2022.05.26 |
---|---|
[Python] unknown error: session deleted because of page crashfrom tab crashed (0) | 2022.04.12 |
[Mac] chromedriver 설치부터 (1) | 2022.04.10 |
[MacBook] M1 MacBookPro 에 openjdk설치 (0) | 2022.04.09 |
[http1.1] Expect: 100-continue (0) | 2021.03.18 |