출처 : http://egloos.zum.com/einmong/v/5885619

UniteTTC-20100221_TTC폰트에서TTF추출.zip


- 사용법

# ttc 에서 ttf 추출

$> UniteTTC gulim.ttc
$> UniteTTC batang.ttc


# ttf 파일을 ttc로 묶음
$> UniteTTC gulim.ttc gulim001.TTF gulim002.TTF gulim003.TTF gulim004.TTF
$> UniteTTC batang.ttc batang001.TTF batang002.TTF batang003.TTF batang004.TTF


※ c:/windows/fonts 에서 ttc 파일에 포함되어 있는 폰트
gulim.ttc : 굴림(001), 굴림체(002), 돋움(003), 돋움체(004)
batang.ttc : 바탕(001), 바탕체(002), 궁서(003), 궁서체(004) 



[구글 어스의 메뉴 및 부가창 폰트 - 아리따 돋움]


이유도 방법도 여러가지가 있습니다. 생각날 때(화면의 저 굴림/돋움 폰트 좀 없애버리고 싶다고 느낄 때) 마다 검색 해 보고 또 따라 해 보기도 했지만, 여러가지 이유로 다시금 원상복귀시키곤 했습니다. 그러던 중 우연히 "사실 굴림체를 없애는 방법은 아주 간단합니다."라는 글을 보고, 방법을 정리해 둡니다.

굴림(체), 바탕(체) 폰트는 폰트 폴더(C:\Windows\Fonts)에 .ttc파일 형태로 제공되어 있습니다. 이는 하나의 파일에 복수의 폰트를 제공하기 위해 사용되는 TTF폰트 컬렉션 파일입니다.

- batang.ttc 파일에는 가변폭 글꼴인 바탕, 궁서, 고정폭 글꼴인 바탕체, 궁서체, 이렇게 4개의 TTF파일이 포함되어 있습니다.
- gulim.ttc 파일에는 가변폭 글꼴인 굴림, 돋움, 고정폭 글꼴인 굴림체, 돋움체 , 이렇게 4개의 TTF파일이 포함되어 있습니다.

적당한 고정폭 글꼴(특히, 셰리프 폰트)은 찾기가 어려워, 바탕은 바탕, 궁서 2종을 "아리따-부리"로, 굴림은 굴림, 돋움 2종을 "아리따-돋움"으로 바꿨습니다. 아래 보이는 UltraISO 스크린샷 처럼, 굴림으로 표기되는 프로그램들의 변화를 확인할 수 있습니다.

- Gulim & GulimChe & Dotum & DotumChe (TrueType) : gulim.ttc

- Batang & BatangChe & Gungsuh & GungsuhChe (TrueType) : batang.ttc

[# 1] 사용 도구

1) UniteTTC (TTC파일에서 TTF파일을 추출해주고, TTF파일 여러개를 TTC파일로 만들어 줍니다)
2) ttfname3 (TTF파일의 폰트 정보를 XML로 추출해주고, 추출한 폰트 정보를 다른 TTF파일에 덮어 씌워 줍니다)

[# 2] 사용 방법

UniteTTC
- TTF추출 : UniteTTC [추출할 폰트.TTC]
- TTC제작 : UniteTTC [생성할 폰트.TTC] [합칠 폰트1.TTF] [합칠 폰트2.TTF] ...

굴림 글꼴 모음 파일(gulim.ttc)에서 TTF 추출
- UniteTTC gulim.ttc
변경 완료된 폰트를 TTC파일로 제작
- UniteTTC gulim.ttc gulim001.TTF gulim002.TTF gulim003.TTF gulim004.TTF

TTFName
- TTF파일의 폰트 정보 추출 : ttfname3.exe [정보를 추출할 폰트.TTF] -o [저장될 정보 파일.XML]
- 정보파일을 원하는 폰트에 입히기 : ttfname3.exe [정보를 입힐 폰트.TTF] [폰트 정보파일.XML] -o [생성될 폰트.TTF]

추출한 굴림폰트(TTF)에서 폰트 정보를 추출. 굴림폰트(TTF)의 정보파일(XML)이 생성됨
- ttfname3.exe gulim001.TTF -o gulim001.xml
추출한 정보파일(XML)을 아리따-돋움 폰트(TTF)에 씌워 새로운 TTF파일 생성
- ttfname3.exe AritaDotumMedium.ttf gulim001.xml -o gulim001.ttf

[# 3] 다운로드

1. UniteTTC (2010.02.21) UniteTTC.zip
http://yozvox.web.fc2.com/556E697465545443.html

2. TTFName (3.0.2.0) TTFName 3.0.2.0.zip 

[# 4] TTF 추출

굴림 글꼴그룹(gulim.ttc)파일을 UniteTTC를 이용해 해체하면 gulim001.TTF / gulim002.TTF / gulim003.TTF / gulim004.TTF의 4개의 파일이 생성됩니다. 2, 4번 글꼴은 고정폭 글꼴인 굴림체와 돋움체입니다.

UniteTTC gulim.ttc

여기서는 가변폭 글꼴인 1번(굴림), 3번(돋움)의 정보를 추출합니다. ttfname을 이용해 gulim001.xml, gulim003.xml을 추출/생성합니다.

ttfname3.exe gulim001.TTF -o gulim001.xml
ttfname3.exe gulim003.TTF -o gulim003.xml


[# 5] TTF 생성

기존의 굴림, 돋움 TTF 폰트(gulim001.TTF, gulim003.TTF)는 삭제하고 아리따-돋움(AritaDotumMedium.ttf)폰트에 xml파일은 씌워 새로운 gulim001.TTF, gulim003.TTF를 생성합니다. 굴림, 돋움 모두 아리따-돋움으로 대체합니다.

del gulim001.TTF
del gulim003.TTF
ttfname3.exe AritaDotumMedium.ttf gulim001.xml -o gulim001.ttf
ttfname3.exe AritaDotumMedium.ttf gulim003.xml -o gulim003.ttf


[# 6] TTC 생성

기존의 굴림 글꼴그룹(gulim.ttc)파일을 삭제하고, 변경된 TTF파일로 새로운 TTC파일 생성합니다.

del gulim.ttc
UniteTTC gulim.ttc gulim001.TTF gulim002.TTF gulim003.TTF gulim004.TTF


[# 7] 시스템의 굴림 폰트 제거

아래와 같은 방법으로 윈도우 상의 (기존에 설치된) 굴림 폰트를 제거할 수 있습니다. (원본 파일은 C:\에 이동 저장)

takeown /F %windir%\Fonts\gulim.ttc /A
icacls %windir%\Fonts\gulim.ttc /grant Administrators:F
move %windir%\Fonts\gulim.ttc C:\


[# 8] 굴림 폰트 설치 & 폰트 캐시 제거 & 리부팅

새롭게 만든 굴림폰트(gulim.ttc)를 설치한 후, FNTCACHE.DAT파일을 제거, 리부팅을 하면 완벽하게 적용됩니다.

del C:\Windows\System32\FNTCACHE.DAT

구글어스의 메뉴폰트 바꾼게 제일 시원합니다.


출처 : https://chanspark.github.io/2017/07/13/%ED%81%AC%EB%A1%AC-%EC%9E%90%EB%8F%99%EC%99%84%EC%84%B1-%EA%B8%B0%EB%8A%A5-%EC%A0%9C%EA%B1%B0%ED%95%98%EA%B8%B0.html


회원가입, 로그인 폼에는 꼭 패스워드와 아이디, 이름, 주소, 카드번호, 카드 비밀번호 등등 다양한 개인정보를 작성해야하는 페이지가 존재합니다. 구글 크롬은 같은 정보를 여러 사이트에서 쉽게 입력할 수 있도록 자동완성기능(autocomplete)이란것을 지원합니다. 문제는 이 자동완성기능이 사이트에서 필요로 하지 않는 정보까지 포함하고 있기때문에 보안 문제가 많다고 하네요.크롬의 자동완성기능의 보안 문제와 해결법-영문그래서 저는 개인적으로 이 기능을 off 하고 사용하고 있지만 저희 고객분들은 그런 기능을 잘 모르는 분들이 많겠죠!! 그렇다고 일일이 고객분들께 사용하지 말아달라고 부탁할 수도 없는 노릇이고… 하니 사이트에서 자체적으로 이 기능을 block 해버리는 방법을 찾아보게 되었습니다.

방법 1 (X)

input  form autocomplete="off"라는 속성값을 부여합니다.

<input type="text" id="..." name="..." autocomplete="off">

인터넷 익스플로러에서는 이 방법이 먹히지만 크롬과 같은 최신 브라우저에서는 통하지 않습니다. 몇년전에 사용하던 방법이었는데 크롬에서 막아버렸다고 하죠. 사유는 뭐 개발자들이 무분별하게 사용해서 이를 방지하는 차원이라는데… 그냥 없애달라고 ㅠㅠㅠ

방법 2 (X)

방법 1이 안된다면, autocomplete="false" 등으로 바꿔보는 방법도 있습니다.

방법 3 (X)

방법 2도 안된다면… 비밀번호 입력칸에 autocomplete="new-password"라고 입력해서 항상 새로운 비밀번호를 입력받는다는 꼼수를 부릴 수도 있습니다.

방법 4

이쯤 와서 정말 화가나기 시작했습니다. 다른일 해야하는데 이거때문에 시간 질질끌리고…. 몇번 더 구글링한 결과 다른 방법을 찾았습니다!!!

먼저 자동완성 기능이 활성화 되는 시점은 form 이나 전체 페이지에서 처음으로 오는 <input type="password"> 요소를 찾아서 바로 앞에 위치하는 input과 자동완성 기능을 띄워주는 방식입니다. 이를 활용하면, 더미 입력폼을 만들어서 해결할 수 있습니다.

<!--remove autocomplete-->
<input style="display:none" aria-hidden="true">
<input type="password" style="display:none" aria-hidden="true">
<!--remove autocomplete end-->
<!--real input start-->
<input type="text"  autocomplete="false" required>
<input type="password" name="password" autocomplete="new-password">
<!--real input end-->

실제로 저는 이렇게 해서 효과를 봤습니다. 완벽하게는 아니지만 password 전에 위치한 인풋창에는 자동완성 기능이 뜨지 않습니다(제 원래 목표). 여전히 password인풋에는 자동완성 창이 뜨네요… ㅠㅠ

번외 - 모바일 인풋 대문자 입력 방지

모바일(특히 iOS)에서는 인풋에서 입력을 시작하면 첫 글자가 대문자로 입력이 됩니다. 하지만 아이디나 이메일 입력창에서 첫 글자가 대문자인 경우는 드물기 때문에 아래 코드릴 입력하시면 좋습니다. 은근히 UX를 개선하는 방법중 하나랄까..

<input type="email" autocapitalize="off">

참고

관련 문제에 대한 스택오버플로 질문글



* Sublime

홈페이지 : http://www.sublimetext.com/



* 한글 입력 시 한 박자 늦게 입력되는 형상

참고 : https://blog.jsnc.kr/64

1. 단축키 Ctrl + Shift + P로 Command Palette 호출
2. Package control: Install Package 입력 및 선택
3. IMESupport 입력 및 선택



* 설정
1. Preferences > settings 선택
   또는
   Ctrl + Shift + P > settings 선택

2. 아래 항목 추가

{
    # 글꼴 변경
    "font_face": "D2Coding",

    
"font_options": [
        "no_italic",  # Italic체 사용 안함
        "no_bold"  # bold체 사용 안함
    ],

    "ignored_packages":
    [
        "Vintage"
    ]



* 단축키 수정
1. Preferences > Key Bindings
   또는
   Ctrl + Shift + P > Key Bindings 선택

2. 아래 항목 추가

[
    # Ctrl + W로 탭만 닫고 프로그램 닫지 않기
    { "keys": ["ctrl+w"], "command": "close_file" },

    # Ctrl + D 로 현재 라인 삭제
    { "keys": ["ctrl+d"], "command": "cut" }





나눔고딕 코딩 : https://github.com/naver/nanumfont
                     https://developers.naver.com/opensource/tools/editor/

나눔고딕코딩-Bold.ttf

나눔고딕코딩.ttf



D2 코딩 : https://github.com/naver/d2codingfont

D2Coding-1.2.zip


ttf  : true type font, 2차원 베지어
ttc : ttf를 묶어놓은 버전
※ ttc를 보면 기본/bold가 묶여 있으므로 ttc를 설치하거나 ttf를 각각 설치하면 된다.



나눔고딕코딩글꼴 : https://github.com/naver/nanumfont



나눔바른고딕 : https://hangeul.naver.com/font



Bitstream vera sans mono : http://www.dafont.com/bitstream-vera-mono.font

bitstream_vera_mono.zip



User Agent 확인 : http://whatsmyuseragent.com/
                          http://chrispederick.com/work/user-agent-switcher/features/test/


* Firefox

1. user agent switcher plugin 설치한다.
    https://addons.mozilla.org/ko/firefox/addon/user-agent-switcher


2. 아래 다운로드 경로에서 User Agent List (XML) 다운로드한다.

    참고 : http://forums.chrispederick.com/discussion/7/a-large-regularly-updated-import-list-of-user-agents
    다운로드 : http://techpatterns.com/forums/about304.html


3. 도구 - Default User Agent - Edit User Agents 클릭하여 다운로드 받은 User Agent List 파일을 Import 시킨다.   

useragentswitcher.xml


4. 도구 - Default User Agent 에서 User Agent를 변경한다.




* Chrome

1. F12 클릭 (개발자 도구) 후 우측 하단 톱니바퀴 아이콘을 클릭한다.

2. Overrides 탭을 클릭하면 User Agent를 변경할 수 있다.


- 확장기능 설치

1. 확장기능을 설치한다.
    https://chrome.google.com/webstore/detail/user-agent-switcher-for-c/djflhoibgkdhkhhcedjiklpkjnoahfmg


2. 우측 상단 아이콘 중 Chrome UA Spoofer 를 클릭하여 User Agent를 변경한다.

참고 : http://apexsoftdevartment.blogspot.kr/2013/02/consolas.html
         http://bestmin.tistory.com/437

cour.ttf

courbd.ttf

courbi.ttf

couri.ttf



1. regedit 를 실행한다.

2. 아래 경로의 Courier New Key값을 찾아 수정한다.
HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows NT > CurrentVersion > FontLink > SystemLink


3. 수정 값 
추가 > 다중 문자열 값
key : 
Courier New

MSMINCHO.TTC,MS Mincho
BATANG.TTC,BatangChe
MINGLIU.TTC,MingLiU
SIMSUN.TTC,SimSun
GULIM.TTC, GulimChe
DOTUMCHE.TTC,Dotum
GULIM.TTC,Gulim



---------------------------------------------------------------------------------------------------

Courier New 폰트가 설치되어 있는데 Editor 설정에서 Courier New 폰트가 보이지 않을 때

C:\Windows\Fonts 에 Courier New 폰트를 찾아서 마우스 우클릭 후 표시를 눌러준다.

Courier New 폰트가 숨김으로 되어 있어서 나오지 않음.

출처 : 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 루트 디렉토리 설정





참고 : http://comptb.cects.com/1264-install-configure-ssh-on-windows


OpenSSH 다운로드 : http://sshwindows.sourceforge.net/


1. OpenSSH 다운로드 및 설치

2. 포트 변경 시 OpenSSH\etc\sshd_config 을 열어 아래처럼 변경

 #Port 22 ==> Port 원하는포트


3. cmd 창

c:\OpenSSH>mkgroup -l >> ..\etc\group
c:\OpenSSH>mkpasswd -l -u 윈도우사용자아이디 >> ..\etc\passwd
c:\OpenSSH>net start opensshd


================================================================================================================
================================================================================================================

출처 : 대전국제IT교육센터 정성재 강사
         http://se.uzoogom.com/134

1. ssh에 대하여
ssh는 Secure shell의 약자로 원격 머신에 로긴하여 그 안에 있는 명령들을 실행하는 프로그램이다.
기본적으로 사용법은 telnet과 유사하지만, telnet은 클라이언트와 서버간의 데이터전송시 일반텍스
트형태로 패킷을 전달하여 패킷의 내용을 유출당할 수 있지만, ssh는 패킷전송시 암호화시키므로 안
전하게 전송할 수 있다.
현재 ssh는 ssh2와 ssh1 두 가지 프로토콜이 있는데, ssh2는 ssh1을 개선한 것으로 호환은 되지만
기본적으로 호환성을 포함하고 있는 것이 아니다. ssh2서버 혼자서는 ssh1 연결을 관리할 수 없으므
로 ssh1 서버가 반드시 있어야 한다.
ssh1과 ssh2의 차이점을 기술적으로 보면 SSH2는 이중-암호화 RSA키 교환을 비롯하여 다양한 키-교
환 방법을 지원한다.


2. SSH설치하기
(1) 개요: 리눅스에서 사용하는 ssh는 두가지가 있다. 하나는 원 제작처인 www.ssh.com에서 제작한
          것과 www.openssh.org가 제작한 것이 있다. 대부분의 배포판에서 openssh에서 제작한 것을
          기본으로 지원하므로 openssh를 사용하도록 한다.
(2) 구성: SSH의 기본 구성은 SSH 서버와 SSH클라이언트로 구분된다. SSH로 접속을 하려면 SSH서버
          설치되어 있어야 하며, 클라이언트에서도 SSH가 지원되는 프로그램을 이용하여 접속해야
         한다.
(3) 설치: 현재 대부분의 배포판 리눅스에 Openssh가 기본으로 설치되어 있으므로 설치부분은 일단
          생략하도록 한다.

3. OpenSSH를 이용하여 ssh서버 설정하기
(1) 서버설정하기
   1) 설명: 서버관련 주 설정파일은 /etc/ssh/sshd_config 이다. 보통 기본 설정파일 그대로 사용해
           도 상관없지만 그룹이나 사용자들을 제한하려면 몇가지 지시자를 건드려야 한다.
   2) 환경설정(sshd_config)파일의 주요항목 분석
   #       $OpenBSD: sshd_config,v 1.34 2001/02/24 10:37:26 deraadt Exp $

   # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

   # This is the sshd server system-wide configuration file.  See sshd(8)
   # for more information.

   Port 22                      // ssh가 사용하는 포트를 지정

   Protocol 2,1                 // openssh는 프로토콜 버전을 원하는 대로 선택할 수 있다. SSH는
                                //SSH1과 SSH2가 있는데 현재와 같이 설정하면 SSH1, SSH2 모두
                                //접속이 가능하다.

   #ListenAddress 0.0.0.0       // sshd 데몬이 귀를 기울일 주소이다. 0.0.0.0은 모든 곳을 말한
   #ListenAddress ::            //다.

   HostKey /etc/ssh/ssh_host_key        // SSH1의 호스트키 위치를 지정한다.

   HostKey /etc/ssh/ssh_host_rsa_key    // SSH2의 RSA암호화방식의 호스트키 위치를 지정한다.

   HostKey /etc/ssh/ssh_host_dsa_key    // SSH2의 DSA암호화방식의 호스트키 위치를 지정한다.

   ServerKeyBits 768                    // 서버 키의 비트수를 정의한다. 최소값은 512이고, 기본
                                        //값은 768이다.

   LoginGraceTime 600                   // 유저가 로그인에 실패했을 경우 서버가 연결을 끊는
                                        //시간이다. 값이 0이면 제한이 없다.

   KeyRegenerationInterval 3600         // 서버의 키는 한번 접속이 이루어진 뒤에 자동적으로
                                        //다시 만들어진다. 다시 만드는 목적은 나중에 호스트의
                                        //세션에 있는 키를 캡처해서 암호를 해독하거나 훔친키를
                                        //사용하지 못하도록 하기 위함이다. 값이 0이면 키는 다
                                        //시 만들어지지 않는다 .기본값은 3600초이다.

   PermitRootLogin yes                  // root 로그인 허용여부를 결정하는 것이다. yes, no, wi
                                        //thout-password를 사용할 수 있다. 현재 yes는 직접
                                        //root로 접속이 가능하다. 이것을 허용하지 않으려면 no
                                        //나 without-password로 바꾼다.
   #
   # Don't read ~/.rhosts and ~/.shosts files
   IgnoreRhosts yes                     // .rhosts 파일을 무시할 것이냐는 설정이다. 기본값은
                                        //.rhosts파일을 무시한다.

   # Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
   #IgnoreUserKnownHosts yes
   StrictModes yes                       // 로그인을 허용하기 전에 파일모드, 사용자 홈디렉토리
                                         //소유권, 원격 호스트의 파일들을 SSH데몬이 체크할 수
                                         //있도록 해주는 설정이다.

   X11Forwarding yes                    // 원격에서 X11 포워딩을 허용하는 것이다. 이 옵션을
                                        //yes로 설정하면 xhost보다 안전한 방법으로 원격에 있는
                                        //X프로그램을 사용할 수 있다.

   X11DisplayOffset 10                  // X11 포워딩될 때 디스플레이 번호를 지정해준다.

   PrintMotd yes                        // SSH로그인시에 /etc/motd파일의 내용을 프린트되도록
                                        //설정한다.

   KeepAlive yes                        // 클라이언트의 접속이 끊어졌는지 체크를 위해 서버가
                                        //일정시간 메시지를 전달한다.

   # Logging
   SyslogFacility AUTHPRIV              // syslog관련 facility코드이다.

   LogLevel INFO                        // 로그레벨을 지정한다. 기본값은 INFO이며, 그 외의 값
                                        //으로 QUIET(기록하지 않음), FATAL(치명적인 오류),
                                        //ERROR, VERBOSE, DEBUGS 등이 있다.

   #obsoletes QuietMode and FascistLogging

   RhostsAuthentication no              // rhost관련 인증허가여부를 지정한다.
   #
   # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
   RhostsRSAAuthentication no           // rhost나 /etc/hosts.equiv파일이 있으면 이것을 사용해
                                        //인증을 한다. 이것은 보안상 좋지 않은 방법이므로 기본
                                        //값은 no이다.
   #
   RSAAuthentication yes                // RSA인증을 사용한다.

   # To disable tunneled clear text passwords, change to no here!
   PasswordAuthentication yes           // 패스워드 인증을 허용한다. 이 옵션은 프로토콜 버전 1
                                        //과 2 모두 적용된다.

   PermitEmptyPasswords no              // 패스워드 인증할 때 서버가 비어있는 패스워드를 인정
                                        //하는 것이다. 기본값은 no이다.

   # Comment to enable s/key passwords or PAM interactive authentication
   # NB. Neither of these are compiled in by default. Please read the
   # notes in the sshd(8) manpage before enabling this on a PAM system.
   ChallengeResponseAuthentication no

   # To change Kerberos options
   #KerberosAuthentication no
   #KerberosOrLocalPasswd yes
   #AFSTokenPassing no
   #KerberosTicketCleanup no

   # Kerberos TGT Passing does only work with the AFS kaserver
   #KerberosTgtPassing yes

   #CheckMail yes
   #UseLogin no

   #MaxStartups 10:30:60
   #Banner /etc/issue.net
   #ReverseMappingCheck yes

   Subsystem       sftp    /usr/libexec/openssh/sftp-server
   // sftp는 프로토콜 버전 2에서 사용되는 것으로 ssh와 같이 ftp의 보안을 강화하기 위해 사용되
   //는 보안 ftp프로그램이다. sftp서버를 사용하기 위한 항목이다.

(2) 클라이언트 설정하기
   1) 설명: 클라이언트의 전체유저 설정파일은 /etc/ssh/ssh_config로 설정할 수 있다. Host지시자
           를 사용하여 접속할 서버마다 다른 옵션을 사용할 수 있다. SSH서버에 접속하는데 있어서
           꼭 필요한 설정은 아니다.
   2) 주요환경 설정파일(ssh_config) 분석
     #       $OpenBSD: ssh_config,v 1.9 2001/03/10 12:53:51 deraadt Exp $

     # This is ssh client systemwide configuration file.  See ssh(1) for more
     # information.  This file provides defaults for users, and the values can
     # be changed in per-user configuration files or on the command line.

     # Configuration data is parsed as follows:  // 클라이언트 설정파일은 3가지 방법으로 설정
     #  1. command line options                  // command line options
     #  2. user-specific file                    // 유저별 설정파일 지정($HOME/.ssh/config)
     #  3. system-wide file                      // 시스템 전체 설정 파일(/etc/ssh/ssh_config)
     # Any configuration value is only changed the first time it is set.
     # Thus, host-specific definitions should be at the beginning of the
     # configuration file, and defaults at the end.

     # Site-wide defaults for various options

     # Host *                     // 모든 호스트에 연결할 수 있다.

     #   ForwardAgent no          // 인증에이전트의 연결을 원격 호스트에 포워드할 수 있다.
     #   ForwardX11 no            // X11 커넥션이 자동으로 된다. 매번 서버에 연결할 때 command
                                  //line에서 -X옵션없이 기본적으로 X포워딩기능을 사용할 수
                                  //있다.
     #   RhostsAuthentication no
     #   RhostsRSAAuthentication yes
     #   RSAAuthentication yes
     #   PasswordAuthentication yes
     #   FallBackToRsh no
     #   UseRsh no
     #   BatchMode no
     #   CheckHostIP yes               // 이 부분이 yes가 되어 있으면 접속할 때마다 리모트 서
                                       //버의 IP주소를 know_hosts파일과 대조해본다. 이것은
                                       //DNS Spoofing에 의해 호스트키의 변경을 알 수 있다.
     #   StrictHostKeyChecking yes
     #   IdentityFile ~/.ssh/identity  // 사용자의 RSA인증 identity를 읽는다. 기본적으로 사용
                                       //자의 홈디렉토리에 $HOME/.ssh/identity에 저장되어 있
                                       //다.

     #   IdentityFile ~/.ssh/id_dsa    // 사용자의 DSA인증 identity를 읽는다. 기본적으로 사용
                                       //홈디렉토리의 $HOME/.ssh/id_dsa에 있다.
     #   IdentityFile ~/.ssh/id_rsa1
     #   IdentityFile ~/.ssh/id_rsa2
     #   Port 22
     #   Protocol 2,1
     #   Cipher blowfish               // 프로토콜 버전1에서 세션을 암호화하기 위한 암호알고리
                                       //즘을 지정한다. blowfish, 3des를 지정할 수 있다.
     #   EscapeChar ~
     Host *
             ForwardX11 yes
             Protocol 2,1
     // 모든 호스트에 접속할 때 ssh2와 ssh1을 사용하며 X11 포워딩을 허가한다.
   3) 사용예
    ㄱ. Host *.mybestone.com
        Protocol 1
         => mybestone.com 서버에 접속할 때는 ssh1 프로토콜을 사용한다.
    ㄴ. Host kldp.org
        Protocol 2
        Compression yes
        CompressionLevel 9
         => kldp.org에 접속할 때는 ssh2와 압축 옵션을 사용한다.

4. 클라이언트에서 SSH 사용하기
(1) 리눅스클라이언트에서 서버로 접속하기
   1) 설명: 리눅스에서 리눅스로 접속한다면 별도의 설정이나 프로그램의 설치없이 가능하다. 대부
           분의 배포판은 openssh가 설치되어 있다. 윈도우에서 리눅스서버로 접속한다면 ssh클라이
           언트를 설치해야 한다.
   2) 리눅스 클라이언트에서 리눅스 서버로 접속하기
    ㄱ. 접속하는 방법:
      a. ssh 계정명@도메인명
      b. ssh -l 계정 도메인명
    ㄴ. 사용예
      a. ssh
posein@mybestone.com
      b. ssh -l posein mybestone.com
    ㄷ. 접속
       [posein@www posein]$ ssh
posein@mybestone.com
       The authenticity of host 'mybestone.com (203.247.40.252)' can't be established.
       RSA key fingerprint is 89:41:93:58:5c:6d:bb:01:84:cb:3d:81:68:80:56:7b.
       Are you sure you want to continue connecting (yes/no)? yes
         => 처음 ssh로 해당 서버에 접속하면 나타나는 메시지로 접속할 서버의 호스트키가
           ~/.ssh/known_hosts(ssh2인 경우에는 known_hosts2)파일에 저장된다. yes로 대답한다.
       Warning: Permanently added 'mybestone.com,203.247.40.252' (RSA) to the list of known
       hosts.
      
posein@mybestone.com's password:
         => yes라고 대답하면 원래 서버의 패스워드를 물어오고, 패스워드를 입력하면 텔넷과 동일
           한 작업을 할 수 있다.
(2) 윈도우에서 리눅스 서버로 접속하기
    => 윈도우에서 ssh를 사용하려면 ssh클라이언트 프로그램의 설치가 필요하다. 대표적인 프로그
      램으로 SecureCRT가 있다. 상용으로 성능이 매우 우수하다. 관련사이트는 http://www.vandyke.
      com이다.

5. 클라이언트에서 SSH서버로 접속하기
(1) 리눅스클라이언트에서 접속하기
   [posein@neuro posein]$ ssh
posein@mybestone.com
   The authenticity of host 'mybestone.com (203.247.40.252)' can't be established.
   RSA key fingerprint is a8:69:69:83:67:8b:50:27:41:ad:b8:e9:0d:b2:a8:88.
   Are you sure you want to continue connecting (yes/no)? yes  // yes라고 입력
   Warning: Permanently added 'mybestone.com,203.247.40.252' (RSA) to the list of .
  
posein@mybestone.com's password:         // 해당 서버의 패스워드를 입력한다.
   [posein@mybestone posein]$
    => 접속되었다.
(2) 윈도우클라이언트에서 서버에 접속하기
   1) 설명: 윈도우에서는 ssh를 이용하려면 별도의 전용 프로그램이 필요하다. http://www.openssh.
           org/windows.html에 가면 윈도우용 클라이언트 프로그램의 목록을 확인할 수 있다. 그러
           나 이 페이지에 있는 프로그램들은 대부분 ssh1만 지원한다. 여기서는 상용프로그램인
           SecureCRT라는 프로그램으로 해본다.
   2) 사용예
    ㄱ. SecureCRT를 선택한다.
    ㄴ. 'Quick Connect'아이콘을 선택한다.
    ㄷ. 'Quick Connect'메뉴에서
       Protocol ssh1
       Hostname 접속하고자하는_도메인
       Port 22
       Username 사용자
       를 입력하고 [connect]를 누른다.
    ㄹ. 처음 접속하면 'New Host Key'라는 창이 뜨는데 [Accept & Save]를 클릭한다.
    ㅁ. 'Enter Password'라는 창이 나오면 사용자패스워드를 입력하고 [ok]를 누른다.


6. 인증키를 이용하여 SSH서버로 접속하기
(1) 개요: SSH서버로 접속할 때 일반적으로는 패스워드를 입력하여 접속하지만 인증키를 이용하여
          접속할 수도 있다. 이 방법을 사용하면 로그인할 때마다 암호를 직접 입력하지 않고 생성
          된 인증키로만 로그인할 수 있다.
(2) 사용예
   1) 인증키를 만들기: ssh-keygen명령을 이용한다.
     [posein@www posein]$ ssh-keygen -t rsa    // RSA 암호화방법으로 인증키를 생성한다.
                                               //Protocol 1 버전용 rsa1와 Protocol 2 버전용
                                               //rsa, dsa 를 -t옵션을 사용하여 선택할 수 있다.
     Generating public/private rsa key pair.
     Enter file in which to save the key (/home/posein/.ssh/id_rsa):
      => 키가 저장될 곳과 파일명을 물어보는데 디폴트로 그냥 엔터를 넘어가도 된다. 넘어가면
        다음과 같이 인증키 암호를 물어온다.
     Created directory '/home/posein/.ssh'.               // 관련 디렉토리를 생성한다.
     Enter passphrase (empty for no passphrase):
      => 원하는 암호를 두번 입력한다.
     Your identification has been saved in /home/posein/.ssh/id_rsa.
     Your public key has been saved in /home/posein/.ssh/id_rsa.pub.
     The key fingerprint is:
     7b:60:56:eb:82:d2:43:40:48:a6:d0:8e:f4:7a:8c:f1
posein@xxx.com
      => ~/.ssh 디렉토리에 키가 생성된다. 참고로 인증키 생성시 인증키 암호를 입력하지 않으면
       ssh 접속시 암호를 입력하지 않아도 접속할 수 있다. 그러나 보안상 위험하므로 피하도록
       한다.
   2) 퍼블릭 키 사용하기
     ㄱ. 설명: 인증키를 생성하면 ~/.ssh 디렉토리안에 한쌍의 키(예를 들면 id_rsa  id_rsa.pub)가
              생성되어 있다. 여기서 퍼블릭키인 id_rsa.pub을 접속할 리모트 서버에 ~/.ssh디렉토
              리에 authorized_keys라는 이름으로 복사한다.
     ㄴ. 사용예
        [posein@neuro posein]$ scp ~/.ssh/id_rsa.pub
posein@mybestone.com:.ssh/authorized_keys
       
posein@mybestone.com's password:             // 해당 서버의 패스워드를 입력한다.
        id_rsa.pub           100% |*************************************************|   235       00:00
   3) 접속하기
     [posein@neuro posein]$ ssh
posein@mybestone.com
      => 만약 인증키생성시에 패스워드를 입력하지 않으면 패스워드없이 즉시 로그인된다.

7. SSH관련 유틸리티
(1) scp(secure copy)
   1) 설명: 원격지의 서버에 있는 파일을 ssh인증과 암호화된 기법을 이용하여 복사하거나 복사해
           올 수 있도록 해준다. 전체적인 사용법은 복사명령인 cp와 유사하다.
   2) 사용법
     scp [option] 복사하고자하는_파일명 사용자아이디@원격지주소:파일명
      => 원격지주소의 파일을 복사하고자 할때는 반대로 지정하면 된다.
   3) option: 대체적으로 cp명령의 옵션과 유사하다.
     -r : 특정디렉토리의 하위디렉토리까지 모두 복사해준다.
   4) 사용예
    ㄱ. scp a.txt
posein@mybestone.com:test
         => 로컬에 있는 a.txt를 원격지서버에 test라는 이름으로 복사한다. 만약 test가 디렉토리
           이며 test라는 디렉토리안에 a.txt라는 이름으로 복사된다.
    ㄴ. scp
posein@mybestone.com:pds/sample.c .
         => 원격지서버의 posein이라는 사용자의 홈디렉토리에서 ~/pds/sample.c를 현재 디렉토리에
           복사한다.
   5) 응용예: 개인 홈디렉토리의 .ssh/config 파일에 접속하고자하는 SSH서버에 관한 정보를 입력
             하면 /etc/hosts파일의 역할처럼 간단히 입력만으로도 접속이 가능하다.
     [posein@neuro posein]$ cat ~/.ssh/config
     Host *bestone                 // 접속하고자하는 서버의 간단한 이름을 지정한다.
     HostName www.mybestone.com    // 실제 호스트네임을 기록한다.
     User posein                   // 서버 계정을 적는다.
     ForwardAgent yes              // 인증대리인이 포워드가 되도록 지정한다.
     [posein@neuro posein]$ scp passwd.txt bestone:.
      => 현재 디렉토리의 passwd.txt를 bestone(www.mybestone.com의 posein이라는 사용자의 홈디렉
        토리)의 지정된 장소에 복사한다.
(2) sftp
   1) 설명: 원격지 서버에 파일을 전송할 때 신뢰할 수 있는 암호화된 기법을 이용하여 전송하거나
           전송받는다. 전체적인 사용법은 ftp명령과 유사하다.
   2) 사용법
     sftp 사용자아이디@원격지주소
   3) 사용예
     sftp
posein@mybestone.com

 

+ Recent posts