SSH 터미널, SCP에서 한글 사용

이 글은 동아리 linux 서버 사용을 위한 도움글로 작성되었습니다. MS Windows 환경에서 널리 사용되는 SSH 터미널인 PuTTY와 SCP 클라이언트인 WinSCP 를 기준으로 설명합니다.

현재 가동 중인 linux 서버인 그랑엘베르(IDC), 유리엘(넬방) 2대는 기본 설정에서 한국어(UTF-8)으로 설정되어 있다. 이 상태에서 쓴다고 가정하면 우선 터미널 셋팅은, (PuTTY 기준으로)

  • Window - Translation의 캐릭터 셋 항목을 UTF-8으로 해준다. (반면에 한국어 euc-kr; ko_KR.EUC-KR 을 쓰면 font encoding으로)
  • Window - Appearance의 font를 한글이 가능한 _고정폭 폰트_로 설정한다. 그리고 스크립트가 한글인지 확인한다. (영어면 한글 입력이 보이지 않는다)
  • 터미널 로그인을 한 후 쉘에서 $LANG, $LC_ALL1 환경 변수 값을 확인한다. 이 둘이 ko_KR.UTF-8 인지 확인할 것

여기까지 진행하면 PuTTY로 한글 입/출력이 가능한 상태로 서버에 로그인 할 수 있다.

덤으로 파일 이동을 위한 WinSCP 사용을 보자.

winscp

기본 설정으로 UTF-8 기반의 문자열을 사용하는 서버에 접속하면 ASCII 영역을 벗어나는 문자들이 깨져서 나오게 된다. (이 경우엔 한글 Windows의 기본 인코딩인 CP949로 해석되서 저렇게 표시; 실제로는 “한글파일"이라는 이름의 파일)

이걸 막으려면 Environment → SFTP → Server does not use UTF-8 의 값을 Auto에서 Off로 바꿔주면 끝. 이렇게 바꿔주고 연결하면 UTF-8 문자로 인식하고 제대로 바꿔서 표현하게 된다.

다국어 문자가 많이 사용되는 현 시대에 권하지는 않지만, 만약에 ko_KR.eucKR 로 서버를 사용하고 싶다면,

  • PuTTY의 translation 설정을 “Use font encoding"으로 한다
  • $LANG, $LC_ALLko_KR.EUC-KR
  • WinSCP의 Server does not use UTF-8 설정을 On이나 Auto로. (잘 안되면 On으로)

이렇게 해주면 된다. (PuTTY Appearnace의 폰트 고르는 것이나 스크립트 옵션은 동일)

다만 유리엘이나 그랑엘베르 모두 URI를 UTF-8 기반으로 사용하므로 한글 파일 이름의 경우 제대로 된 웹 주소 혹은 URI를 만들어내지 못할 수 있으니 주의.


  1. LC_ALL의 경우 설정이 안되도 큰 문제는 없지만, ls 같은 명령어라거나 man 페이지의 언어 선택 같은데 사용되기 때문에 적절히 선택되어야 한다. LC_ALL 혹은 LC_어쩌구에 해당하는 환경 변수들의 경우 “(로케일 부분).(인코딩 부분)“으로 표현되게 되는데, 인코딩은 제대로 된 - 현재 사용하는 터미널 설정에 맞는 - 값이어야 한다. 로케일 부분은 언어 선택이나 날짜, 시간 등의 표시에 영향을 주고, 인코딩 부분은 전송하는 문자열 인코딩 방식에 영향을 주게된다. ↩︎