출처 : http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=60392&sca=%BA%B8%BE%C8&page=2
freeSSHd Download : http://www.freesshd.com
2000년대 접어들면서 리눅스에서는 암호화 통신인 ssh 사용이 일반화 되었습니다.
그리고 ssh 를 이용하여 ftp 대신 sftp 서비스를 이용하기도 합니다.
저 역시 대부분의 서버작업을 ssh 를 이용하며 ftp 대신 sftp 를 이용합니다.
그런데 윈도우에서는 서버작업시 터미널을 주로 이용하는데 문제는 ftp 였습니다.
그래서 혹시나 sftp 를 지원하는 프로그램이 없나 찾아보게 되었습니다.
윈도우용 ssh 클라이언트 프로그램으로는 대표적으로 putty(ssh) 나 winscp(sftp) 등이 있지만
윈도우 ssh Server 용 프로그램은 본적이 없었던거 같습니다.
구글링을 해보니.. cygwin 으로 openssh 를 동작시키는 방법이 있었지만
http://pigtail.net/LRP/printsrv/cygwin-sshd.html
귀차니즘과 어느정도 아시는 분들이나 문제없이 설치할듯 하고 해서 계속 찾아보니..
몇가지 프로그램을 발견했지만 대부분 유료가 많았습니다. 그러다 freeSSHd 라는 프로그램을 찾게되었고
그 프로그램을 이용하여 쉽게 구축할수 있더군요.
다음은 freeSSHd 를 이용하여 설치 및 설정을 하는 방법입니다.
테스트환경 : 윈도우 XP 프로페셔널
필요 환경 : NT 계열
freeSSHd Download : http://www.freesshd.com
다운로드에 가시면 하시면 2개의 설치 실행화일을 받으실수 있습니다.
freeSSHd.exe 는 ssh server 를 설치하는 install 화일이고 freeUserImport.exe 는 윈도우 계정을
ssh 서버로 접근가능하게 컨버팅해주는 util 입니다.
우선 freeSSHd.exe 를 실행합니다.
설치중에 어려움은 없을거고 설치 중간에 시스템 서비스로 등록하겠느냐고 나오는데 그건 여러분의 판단에
맏기겠습니다. 저같은경우는 등록해서 사용했습니다.
이제 설치가 완료되고 freeSSHd 셋팅을 할 차례입니다.
트레이에 못보던 아이콘이 생기고 클릭하면 freeSSHd 아래와 같이 셋팅창이 뜰겁니다.
※ 관리자 권한이 있는 사용자로 서버를 시작해야 한다.
1. Server satatus
Telnet Server 와 SSH Server 의 실행 과 중지를 하는곳입니다.

2. Telnet
텔넷 서버의 설정을 하는경우 설정합니다. 그러나 텔넷은 권장하지 않습니다.
텔넷을 사용할거라면 굳이 freeSSHd를 설치할 필요가 없죠.

3. SSH
Listen address 에서 특정 IP를 지정할수도 있습니다.
Max number of connections 설정은 최대 접속갯수를 설정합니다. 0은 제한이 없다는 것입니다.
Idle timeout 은 입력이 없으면 얼마후에 접속을 서버쪽에서 종료시키는 기능입니다. 0은 제한이 없습니다.
Command shell 은 SSH 접속시 사용할 명령어 실행하기 위한 인터페이스이고 리눅스에서는 shell 이죠.
그외 옵션은 아래와 같이 설정하고....
RSA , DSA 설정은 기본값으로 두고.. 다음

로그인 Fail 이 나면서 로그인이 안되는 버그가 있는 경우 Use new console engine 체크 항목을 해제하고 feeeSSHd unload 후 재시작하면 된다.
4. Authentication
ssh 인증을 어떤식으로 할것이냐는 것입니다.
패스워드 방식과 공개키 방식이 있습니다.
저는 두가지 경우를 모두 선택했습니다. 여기서 Allowed 와 Required 는 차이가 없습니다.
공개키 생성을 이용하기 위해서는 puttygen.exe 를 이용하시면 됩니다.
RSA로만 사용하는 경우에는 Password authentication 은 Disabled 선택하고, Public key authentication 항목을 Allowed 또는 Required로 선택한다.
puttygen.exe 다운로드
공개키 인증 방법은 접속하는 Client에서 RSA로 개인키/공개키를 생성 후 Server 에 자신의 공개키를 등록하여 아이디만 가지고 로그인을 하는 방법이다.
1. puttygen을 실행시키고 SSH-2 RSA / 2048 bit 선택 후 Generate 버튼을 클릭한 후 프로그레스바 밑 빈 공간에 마우스를 계속 움직여서 key pair 를 생성한다.
2. 키 생성이 완료되면 Public key for pasting into OpenSSH authorized_keys file 항목에 공개키가 표시되는데 그 부분을 드래그 하여 복사한 후 사용자 계정 id와 동일한 파일명으로 저장한다. (확장자 없이)
3. Key passphrase 항목에 비밀번호를 입력한다. (비밀번호 없이 해도 된다)
3-1. Save private key 버튼을 클릭하여 private key 파일도 저장한다. (보통 파일명은 상관없지만 사용자ID.ppk 로 저장)
3-2. Java 에서 (JSch) library로 접속하는 경우 OpenSSH key 파일을 사용하므로 메뉴 중 Conversions > Export OpenSSH key 를 실행하여 사용자ID.pem / 사용자ID.key 등 파일명으로 저장한다.
위 puttygen 을 실행하여 만든 공개키 파일만 모아둔 폴더를 아래 feeeSSHd > Authentication 탭의 Public key folder 를 해당 폴더로 지정한다.

1. 파일질라 (Filezilla)에서 개인키/공개키로 접속하는 경우 파일질라 메뉴 편집 > 설정에서 연결 > SFTP 항목을 선택하고 키 파일 추가 버튼을 클릭 후 위에서 생성한 개인키 (*.ppk) 파일을 선택하고 암호 입력 후 암호화되지 않은 개인키 파일을 별도로 저장한다.
2. 파일질라에서 접속 시 로그온 유형은 인터랙티브를 선택하고 사용자 ID만 입력하여 로그인하면 된다.
5. Encryption
어떤 암호화 알고리즘을 사용할것인가를 선택합니다.

6. Tunneling
freeSSHd 를 통해 터널링을 지원할것인가의 여부를 설정합니다.
실제 원격에서 putty 등을 통해 터널링을 이용할수있습니다. putty 설정을 통해 외부접속하는 방법은
인터넷에 ssh 터널링으로 검색해보면 될듯하고 스쿨에도 꽤 자료가 있습니다.

7. SFTP
sftp 접속시 홈디렉토리를 설정합니다.
여러가지 sftp 프로그램이 있지만 개인적으로는 winscp 를 추천합니다.
winscp 다운로드

8. Automatic updates
업데이트 설정입니다.

9. Online users
현재 접속해 있는 User 리스트를 출력합니다.
해당유저를 두번클릭하면 Disconnect 버튼이 활성화 되며 해당 유저의 접속을 강제로 종료시킬수 있습니다.

10. Logging
아래와 같이 체크하면 사용자들의 접속 기록을 확인할수 있습니다.

11. Host restrictions
접속 제한 IP들을 설정하는 곳입니다.
tcp_wrapper 와 같은 보안정책을 실행합니다.
Allow only these IP addresses : 전체를 막고 지정한 특정 IP의 접속을 허용합니다.
Refuse these IP addresses : 전체를 풀고 지정한 특정 IP의 접속을 차단합니다.

12 Users
현재 등록된 User를 등록, 수정, 삭제 할수 있습니다.
Add 를 클릭하게 되면 아래와 같이 새창이 뜹니다.
Login : ID입력
Authorization : 인증은 윈도인증, 패스워드, 공개키인증방식을 선택할수 있습니다.
패스워드 방식을 선택하면 패스워드 입력창이 활성화 됩니다.

RSA (개인키, 공개키)로 로그인하는 경우에는 Authorization 항목을 Public key (SSH only) 항목을 선택한다.
여기까지 설정이 되었다면 freeSSHd 의 셋팅이 모두 끝났습니다.
하지만 일반적인 경우 접속이 되지 않습니다. 그건 윈도우의 방화벽 때문입니다.
대부분의 분들은 잘 아실거라 생각하지만 혹시 잘모르시는 분들도 있다고 보고 윈도우 방화벽에서
22번 포트를 푸는 방법을 설명하자면...
제어판 => Windows 방화벽 => 고급탭 선택 후 설정하려는 연결설정을 선택한후 설정을 클릭
=> 고급설정창이 뜨고 추가 버튼을 클릭한후 아래의 이미지에 나와있는것처럼 설정을 하시면됩니다.

쩝 설명을 적는다는게 이미지 캡쳐하다보니 시간이 꽤 걸리네요..
===============================================================================================================================
* 설치 후 간단 사용법
1. Server status 탭에서 Telnet / SSH 영역의 Click here to start it. 클릭.
"The specified address is already in use" 메시지가 나올 경우 해당 서비스 탭 선택 후 Port 변경해야 함
2. Users 탭 > Add 버튼 클릭
Login : 사용자ID
Authorization : Password stored as SHA1 hash 선택
Password : 비밀번호
User can use : 모두 선택
3. 접속 시 Putty 사용 (Aromnet은 로그인 안됨)
===============================================================================================================================
freeFTPd 설치
다운로드 : http://www.freesshd.com
1. 설치 후 freeFTPd 실행
2. Users > Add 버튼 클릭
Login : 사용자 아이디
Authorization : Password stored as SHA1 hash
Password : 비밀번호
Home directory : $SERVERROOT
3. SFTP
Listen address : 기본값
Port : 포트번호
SFTP root directory : FTP 루트 디렉토리 설정