본문 바로가기

카테고리 없음

우분투에서 SSH 연결 시 한글이 깨지는 이슈 해결

Ubuntu 서버에 SSH로 접속했을 때 터미널에서 한글이 깨지는 현상을 경험한 적이 있나요?


이 문제는 주로 서버의 로케일(Locale) 설정이 올바르게 되어 있지 않거나, SSH 클라이언트에서 UTF-8이 설정되지 않아서 발생합니다.

 

이번 포스팅에서는 시스템 기본 언어를 영어(English)로 유지하면서 한글이 깨지지 않도록 설정하는 방법을 정리해보겠습니다.


한글이 깨지는 이유

SSH 연결 시 한글이 깨지는 이유는 이런 이유들이 있습니다.

 

  1. 로케일이 올바르게 설정되지 않음
    • 서버의 로케일이 C 또는 POSIX로 설정되어 있으면 한글이 제대로 표시되지 않습니다.
  2. UTF-8 인코딩이 적용되지 않음
    • 터미널에서 UTF-8을 지원하지 않거나, 클라이언트와 서버 간 인코딩이 일치하지 않을 경우 깨짐 현상이 발생합니다.
  3. SSH 클라이언트 설정 문제
    • Windows의 PuTTY나 WSL(Windows Subsystem for Linux) 환경에서 UTF-8이 제대로 적용되지 않은 경우 발생할 수 있습니다.

시스템 언어는 영어 유지 + 한글 깨짐 방지

하지만 우분투 언어 자체를 한국어로 바꾸고 싶지는 않죠..
우분투의 기본 언어를 영어로 유지하면서 한글이 깨지지 않도록 하려면 LC_CTYPEko_KR.UTF-8로 변경하면 됩니다.

 


1. 현재 로케일 확인

먼저, 서버에서 현재 설정된 로케일을 확인합니다.

locale

출력 결과가 아래처럼 나온다면, UTF-8이 아닌 C 또는 POSIX 상태일 가능성이 높습니다.

LANG=en_US.UTF-8
LC_ALL=
LC_CTYPE=C

이 경우 한글이 제대로 표시되지 않으므로 LC_CTYPE을 ko_KR.UTF-8로 변경해야 합니다.

 


2. 로케일 설정 (한글 깨짐 방지)

현재 시스템 언어는 en_US.UTF-8로 유지하면서, 한글 처리를 위해 LC_CTYPE만 ko_KR.UTF-8로 설정합니다.

sudo locale-gen en_US.UTF-8 ko_KR.UTF-8
sudo update-locale LANG=en_US.UTF-8 LC_CTYPE=ko_KR.UTF-8
  • LANG=en_US.UTF-8시스템 기본 언어는 영어로 유지
  • LC_CTYPE=ko_KR.UTF-8한글 인코딩 처리 가능하도록 설정

 


3. 설정 적용

이제 변경 사항을 적용합니다.

export LANG=en_US.UTF-8
export LC_CTYPE=ko_KR.UTF-8
source /etc/default/locale

 

변경 사항을 영구적으로 유지하려면 ~/.bashrc 또는 ~/.profile에 추가합니다.

echo 'export LANG=en_US.UTF-8' >> ~/.bashrc
echo 'export LC_CTYPE=ko_KR.UTF-8' >> ~/.bashrc
source ~/.bashrc

 

설정을 적용한 후 locale 명령어를 실행하면 다음과 같은 결과가 나와야 합니다.

LANG=en_US.UTF-8
LC_CTYPE=ko_KR.UTF-8

 


 

물론 SSH를 사용하는 클라이언트(로컬 터미널)에서도 UTF-8이 적용되어 있어야 합니다.

 

Mac/Linux

Mac이나 Linux의 터미널에서는 기본적으로 UTF-8이 적용되어 있을 것입니다.

echo $LANG

 

출력이 UTF-8이 아니라면 다음을 실행하세요.

export LANG=en_US.UTF-8

 

Windows (PuTTY 사용 시)

PuTTY를 사용할 경우에는 UTF-8 설정이 필요합니다.

  1. PuTTY → Window → Translation으로 이동
  2. Character setUTF-8로 변경
  3. Session → Save를 눌러 설정 저장 후 다시 접속

 

Windows (Windows Terminal / WSL)

Windows의 기본 터미널(Windows Terminal)이나 WSL을 사용할 경우 다음을 실행하세요.

chcp 65001

 

이후 다시 SSH 접속을 시도하면 한글이 정상적으로 표시됩니다.

 


 

혹시 이렇게 해도 한글이 계속 꺠진다면 locale -a 출력 결과를 확인해보세요 :)