PuTTY
원작자 Simon Tatham
개발자 Simon Tatham
발표일 1999년 1월 8일
버전 정보 0.83(2025년 2월 8일)
프로그래밍 언어 C
플랫폼 Microsoft Windows
크기 몇MB
언어 영어
종류 SSH 접속 프로그램
라이선스 MIT
웹 사이트 Green tick공식 홈페이지

개요[편집 / 원본 편집]

PuTTYSimon Tatham이 개발한 무료 오픈 소스 SSH 클라이언트 프로그램이다. 주로 윈도우 환경에서 Unix/Linux 서버에 원격 접속할 때 사용되는 대표적인 터미널 에뮬레이터로, IT 업계 종사자라면 누구나 한 번쯤은 사용해봤을 그 프로그램이다. 이름의 유래는 개발자 Simon Tatham이 좋아하는 퍼티(점토)라는 점토 소재에서 따온 것이라고 한다. 네이밍 센스가 독특하다

PuTTY의 가장 큰 특징은 완전 무료라는 점이다. 돈 주고 살 이유가 없다고 해도 과언이 아닐 정도로 필요한 기능을 모두 갖추고 있으면서도 공짜다. 또한 매우 가벼워서 설치 없이도 실행 가능한 포터블 버전을 제공하며, SSH뿐만 아니라 Telnet, rlogin, Serial 등 다양한 프로토콜을 지원한다. Windows 환경에 최적화되어 있으면서도 UTF-8 인코딩으로 한글 표시도 완벽하게 지원한다.

역사[편집 / 원본 편집]

개발 배경[편집 / 원본 편집]

1990년대 후반은 Windows 환경에서 Unix 시스템에 접속할 수 있는 무료 SSH 클라이언트가 거의 없던 시절이었다. 당시에는 SecureCRT나 SSH Communications Security 같은 상용 프로그램들이 주를 이뤘는데, 이들은 모두 유료였다. 돈이 없으면 원격 접속도 못하는 시절이었던 것이다. 이런 상황에서 케임브리지 대학교에서 컴퓨터 과학을 전공하던 Simon Tatham이 1999년 개인 프로젝트로 PuTTY 개발을 시작했다.

버전 역사[편집 / 원본 편집]

PuTTY의 첫 릴리즈는 1999년 1월 8일에 세상에 나왔다. 이후 2000년 10월에 출시된 0.50 버전에서는 SSH-2 프로토콜 지원이 추가되었고, 2007년 8월의 0.60 버전에서는 보안 강화 및 안정성이 크게 개선되었다. 그리고 무려 18년간의 개발 끝에 2017년 7월 0.70 버전이라는 메이저 업데이트가 나왔으며, 가장 최근인 2022년 10월에는 최신 보안 표준을 적용한 0.78 버전이 출시되었다. 버전 넘버링이 1.0을 넘지 않는 것이 특징인데, 언제 1.0이 될지는 개발자만이 안다고 한다.

기능[편집 / 원본 편집]

지원 프로토콜[편집 / 원본 편집]

PuTTY의 메인 기능이자 존재 이유는 바로 SSH (Secure Shell) 지원이다. SSH-1과 SSH-2 프로토콜을 모두 지원하는데, SSH-1은 구형 프로토콜이지만 호환성을 위해 여전히 지원하고 있고, SSH-2는 현재 표준으로 사용되는 프로토콜이다. 포트 포워딩 기능도 로컬, 리모트, 동적 포트 포워딩을 모두 지원하며, RSA, DSA, ECDSA, Ed25519 등 다양한 키 인증 방식을 제공한다.

Telnet도 지원하는데, 이는 보안이 없는 구시대의 유물이지만 아직도 일부 네트워크 장비에서 사용되는 프로토콜이다. 암호화되지 않은 텍스트 전송 방식으로 주로 레거시 시스템 접속용이나 네트워크 장비 관리용으로 간혹 사용된다. rlogin은 Unix 계열에서 사용되던 원격 로그인 프로토콜로 이것도 구시대 유물에 해당한다. Serial 연결도 지원하는데, 시리얼 포트를 통한 직접 연결로 네트워크 장비 콘솔 케이블로 접속할 때 유용하다.

터미널 에뮬레이션[편집 / 원본 편집]

PuTTY는 대부분의 Unix/Linux 시스템과 호환되는 VT100/VT102 터미널 에뮬레이션을 제공한다. 16색부터 256색까지 색상을 지원하며, UTF-8, EUC-KR 등 다양한 인코딩으로 한글도 완벽하게 표시할 수 있다. 사용자가 원하는 폰트로 변경도 가능하다. Windows와의 통합 기능도 뛰어나서 Ctrl+C/V로 클립보드 복사 붙여넣기가 가능하고, 마우스 우클릭으로 붙여넣기도 할 수 있으며, 창 크기를 조절하면 자동으로 터미널 크기도 조정된다.

사용법[편집 / 원본 편집]

기본 접속[편집 / 원본 편집]

PuTTY 사용법은 매우 간단하다. 프로그램을 실행하면 나타나는 설정 창에서 Host Name에 접속할 서버의 IP 주소나 도메인을 입력하고, Port에는 SSH 포트 번호를 입력한다. 기본값은 22번이다. Connection type에서 SSH를 선택한 후 Open 버튼을 클릭하면 된다. 너무 간단해서 설명할 게 없을 정도다. 접속이 되면 Login as 프롬프트가 나타나는데, 여기에 사용자명을 입력하고 엔터를 누른 다음 비밀번호를 입력하면 된다. 당연히 비밀번호는 화면에 표시되지 않는다.

세션 저장[편집 / 원본 편집]

자주 접속하는 서버가 있다면 세션으로 저장해두면 매우 편리하다. 접속 정보를 입력한 후 Saved Sessions 항목에 원하는 이름을 입력하고 Save 버튼을 클릭하면 저장된다. 다음에 접속할 때는 저장된 세션을 더블클릭하기만 하면 된다. 한 번 설정해두면 영원히 편하다는 것이 PuTTY 사용자들의 공통된 의견이다.

고급 설정[편집 / 원본 편집]

PuTTY는 다양한 고급 설정 옵션을 제공한다. Window > Translation에서 문자 인코딩을 설정할 수 있는데, UTF-8은 현재 표준으로 한글 표시가 완벽하고, EUC-KR은 구형 한글 인코딩, ISO-8859-1은 서구권 문자에 사용된다. Window > Appearance에서는 터미널 외관을 설정할 수 있다. 폰트는 Consolas나 나눔고딕코딩 등 고정폭 폰트를 추천하며, 색상은 기본 테마나 사용자 정의 색상을 사용할 수 있다. 투명도 설정도 가능한데, 이는 Windows Vista 시절 유행했던 그 기능이다.

Terminal > Keyboard에서는 키보드 동작을 설정할 수 있다. 백스페이스 키를 Control-H나 Control-? 중 어느 것으로 설정할지, Home/End 키를 표준 모드나 rxvt 모드 중 어느 것으로 할지, 펑션 키를 Xterm R6, VT400, VT100+ 중 어느 방식으로 설정할지 선택할 수 있다.

보안[편집 / 원본 편집]

키 기반 인증[편집 / 원본 편집]

비밀번호 대신 공개키/개인키 쌍을 사용하는 키 기반 인증은 훨씬 더 안전한 방법이다. PuTTYgen을 사용하여 키 쌍을 생성할 수 있는데, 프로그램을 실행한 후 원하는 키 타입(RSA, DSA, ECDSA, Ed25519)을 선택하고 Generate 버튼을 클릭하면 된다. 이때 마우스 움직임으로 랜덤성을 제공해야 하는데, 컴퓨터가 시키는 대로 마우스를 열심히 흔들어야 한다. 생성된 공개키는 서버의 ~/.ssh/authorized_keys 파일에 추가하고, 개인키는 안전한 곳에 보관한 후 PuTTY에서 개인키 파일 경로를 설정하면 된다.

호스트 키 검증[편집 / 원본 편집]

PuTTY로 서버에 최초 접속할 때는 서버의 호스트 키를 확인하는 과정을 거친다. Accept를 누르면 키를 신뢰하고 저장하게 되고, Connect Once를 누르면 이번만 접속하고 키는 저장하지 않으며, Cancel을 누르면 접속을 취소한다. 처음 보는 키라면 관리자에게 확인하는 것이 좋다.

포트 포워딩[편집 / 원본 편집]

PuTTY는 다양한 포트 포워딩 기능을 제공한다. 로컬 포트 포워딩은 로컬 포트를 원격 서버의 포트로 연결하는 기능으로, 예를 들어 로컬 8080포트를 원격 서버의 80포트로 연결하려면 L8080:127.0.0.1:80 형식으로 설정하면 된다. 리모트 포트 포워딩은 원격 서버의 포트를 로컬로 연결하는 역방향 포트 포워딩이고, 동적 포트 포워딩은 SOCKS 프록시 서버 역할을 하는 포트 포워딩으로 우회 접속의 친구라고 할 수 있다.

관련 프로그램[편집 / 원본 편집]

PuTTY 패밀리[편집 / 원본 편집]

PuTTY와 함께 제공되는 관련 프로그램들이 있다. PuTTYgen은 SSH 키 쌍을 생성하고 관리하는 도구로, RSA, DSA, ECDSA, Ed25519 키 생성이 가능하며 OpenSSH 형식과 PuTTY 형식 간 변환 기능과 키의 fingerprint 확인 기능을 제공한다. Pageant는 SSH 키를 메모리에 로드하여 자동 인증을 제공하는 SSH 에이전트로, 시스템 트레이에서 실행되며 여러 개의 키를 동시에 관리할 수 있고 PuTTY에서 자동으로 키를 사용할 수 있게 해준다. 한 번 설정하면 비밀번호 입력할 필요 없어서 매우 편하다.

PSCP는 PuTTY Secure Copy Protocol의 줄임말로 파일 전송용 명령행 도구다. pscp user@server:/path/to/file C:\local\path\ 같은 형식으로 사용한다. PSFTP는 PuTTY SFTP client로 대화형 파일 전송 클라이언트인데, psftp user@server 명령으로 실행할 수 있다.

대안 프로그램[편집 / 원본 편집]

PuTTY의 상용 대안으로는 VanDyke Software의 SecureCRT와 NetSarang의 Xshell 등이 있다. SecureCRT는 유료 프로그램이고, Xshell은 개인용은 무료지만 상업용은 유료다. mRemoteNG는 오픈소스로 다중 프로토콜을 지원한다. 무료 대안으로는 Windows 10/11에 기본 제공되는 Windows Terminal + OpenSSH 조합이나, X11 서버가 내장된 MobaXterm, PuTTY의 포크 버전인 KiTTY 등이 있다. 하지만 여전히 PuTTY가 최고라는 것이 대부분 사용자들의 의견이다.

문제점 및 한계[편집 / 원본 편집]

인터페이스[편집 / 원본 편집]

PuTTY의 가장 큰 문제점은 1999년부터 거의 변하지 않은 Windows 98 스타일 인터페이스다. 복고풍이라고 하면 좋게 들리지만, 실제로는 설정 창이 복잡하고 직관적이지 않으며 탭 기능도 없어서 여러 세션을 열면 작업표시줄이 지저분해진다. 다크 테마도 공식 지원하지 않는다. 세션 관리가 불편하고 스크립팅 기능이 부족하며 파일 전송 기능도 별도 프로그램을 사용해야 한다.

기능적 한계[편집 / 원본 편집]

PuTTY는 기본적으로 탭 기능을 지원하지 않는다. 여러 서버에 동시 접속하려면 PuTTY를 여러 개 실행해야 하는데, 이는 매우 불편하다. SuperPuTTY나 mRemoteNG 같은 서드파티 솔루션이 있지만 공식적으로는 지원 계획이 없다. 또한 SSH 접속과 파일 전송이 분리되어 있어서 FTP 클라이언트처럼 통합된 인터페이스가 없다는 것도 아쉬운 점이다.

플랫폼 지원[편집 / 원본 편집]

PuTTY는 주로 Windows 플랫폼을 대상으로 개발되어 다른 OS 지원이 제한적이다. Linux나 macOS용으로는 비공식 포팅 버전만 존재하고, 모바일용 공식 앱은 아예 없다.

팁과 트릭[편집 / 원본 편집]

효율적인 사용법[편집 / 원본 편집]

PuTTY를 효율적으로 사용하려면 Default Settings를 활용하는 것이 좋다. 기본 설정에서 자주 사용하는 옵션들을 설정한 후 Default Settings 세션에 저장해두면, 새 세션을 생성할 때 기본값으로 적용된다. 유용한 설정으로는 Terminal > Bell에서 벨 소리 끄기(새벽에 서버 작업할 때 필수), Window > Behaviour에서 Alt+Tab으로 창 전환 허용, Connection > Data에서 자동 로그인 사용자명 설정 등이 있다. 단축키로는 Ctrl+Right Click으로 컨텍스트 메뉴, Shift+Insert로 붙여넣기, 최신 버전에서는 Ctrl+Shift+C/V로 클립보드 복사/붙여넣기가 가능하다.

문제 해결[편집 / 원본 편집]

한글이 깨져서 물음표나 깨진 문자로 표시되는 경우에는 Window > Translation에서 UTF-8을 선택하고, 서버에서 locale 명령어로 로케일을 확인한 후 필요시 export LANG=ko_KR.UTF-8을 실행하면 된다. 일정 시간 후 자동으로 연결이 끊어지는 문제는 Connection에서 Seconds between keepalives를 60 정도로 설정하고 Enable TCP keepalives를 체크한 후 방화벽이나 NAT 타임아웃을 확인하면 해결된다. 화살표 키나 Home/End 키가 제대로 작동하지 않을 때는 Terminal > Keyboard에서 키보드 모드를 변경하거나 The Function keys and keypad 옵션을 조정하고, 필요시 VT100+ 모드를 사용하면 된다.

고급 활용[편집 / 원본 편집]

자동화[편집 / 원본 편집]

자주 사용하는 접속을 배치 파일로 만들어 바탕화면에 저장해두면 편리하다. "C:\Program Files\PuTTY\putty.exe" -load "MyServer" 같은 내용으로 배치 파일을 만들면 된다. PuTTY는 다양한 명령행 옵션을 지원하는데, putty.exe -ssh user@server -P 22 -pw password 형식으로 직접 접속 정보를 지정하거나, putty.exe -load "SessionName"으로 저장된 세션을 불러오거나, putty.exe -ssh -L 8080:localhost:80 user@server 같은 식으로 포트 포워딩과 함께 접속할 수도 있다.

보안 강화[편집 / 원본 편집]

신뢰할 수 있는 호스트 키만 허용하도록 Connection > SSH > Host keys에서 설정하고, 알려진 호스트 키 목록을 관리하며 키 변경 시 경고가 표시되도록 할 수 있다. Connection > SSH > Cipher에서는 사용할 암호화 알고리즘을 선택할 수 있는데, AES는 현재 표준으로 가장 안전하고, 3DES는 구형 알고리즘으로 호환성용이며, Blowfish는 빠르지만 구형 알고리즘이다. 보안이 중요하다면 AES만 사용하는 것이 좋다.

로깅[편집 / 원본 편집]

Session > Logging에서 모든 입출력을 파일로 저장할 수 있다. All session output으로 모든 출력을 저장하거나, SSH packets로 SSH 패킷 레벨 로깅을, SSH packets and raw data로 원시 데이터까지 모든 것을 로깅할 수 있다. 날짜별 로그 파일을 생성하려면 putty-&Y&M&D-&T.log 형식을 사용하고, 로그 파일 크기 제한도 설정할 수 있다. 다만 비밀번호가 로그에 남을 수 있으므로 개인정보 포함 가능성에 주의해야 한다.

커뮤니티 및 개발[편집 / 원본 편집]

개발 현황[편집 / 원본 편집]

PuTTY는 Simon Tatham이 주도하는 오픈소스 프로젝트다. 케임브리지 대학교 출신인 그는 현재 ARM Holdings에 근무하면서 개인 시간에 PuTTY 개발을 지속하고 있다. MIT 라이센스로 배포되어 자유롭게 사용, 수정, 배포할 수 있으며 상업적 사용도 허용되고 소스 코드 공개 의무도 없다. 저작권 표시만 유지하면 된다.

커뮤니티[편집 / 원본 편집]

공식 웹사이트는 https://www.putty.org/이고, 소스 코드는 Git 저장소로 관리되며, 메일링 리스트를 통해 버그 리포트 및 개발 논의가 이루어진다. 비공식적으로는 다양한 IT 커뮤니티에서 활발한 논의가 이루어지고 있으며, 수많은 블로그와 유튜브 영상을 통해 튜토리얼이 제공되고 있다. KiTTY나 ExtraPuTTY 같은 포크 프로젝트들도 활발히 개발되고 있다. 전 세계 시스템 관리자들의 필수 도구라고 해도 과언이 아니다.

여담[편집 / 원본 편집]

인기도[편집 / 원본 편집]

PuTTY는 전 세계에서 가장 많이 사용되는 SSH 클라이언트 중 하나다. 특히 Windows 환경에서는 사실상 표준으로 여겨진다. SourceForge에서 수억 번 다운로드되었고, IT 교육 과정에서 필수 도구로 사용되며, 기업 환경에서도 광범위하게 채택되고 있다. IT업계에 있다면 PuTTY를 모르면 간첩 취급받을 정도다.

문화적 영향[편집 / 원본 편집]

PuTTY는 IT 문화에도 큰 영향을 미쳤다. 모니터 화면의 PuTTY 아이콘은 친숙한 모습이 되었고, login as: 프롬프트는 거의 트레이드마크 수준에 이르렀다. 검은 터미널 화면은 해커나 시스템 관리자의 상징이 되었다. 대학교 컴퓨터 과학 과정에서는 필수 도구가 되었고, 리눅스 입문자들에게는 첫 번째 도구 역할을 하고 있다. 코로나19로 재택근무가 늘어나면서 원격 작업 시대의 필수 프로그램으로 더욱 중요해졌다.

미래 전망[편집 / 원본 편집]

PuTTY는 마이크로소프트의 Windows Terminal + OpenSSH 공식 지원이나 WSL을 통한 Windows에서의 Linux 환경 직접 사용, 클라우드 시대의 웹 기반 터미널 증가 등의 경쟁 상황에 직면해 있다. 하지만 여전히 안정성신뢰성에서 타의 추종을 불허한다. 20년 이상의 검증된 안정성과 가벼운 용량, 빠른 실행 속도, 별도 설치 없이 사용 가능한 포터블 버전 등의 장점으로 인해 한번 PuTTY를 쓰면 다른 걸로 갈아타기 힘들다는 것이 사용자들의 공통된 의견이다.

관련 문서[편집 / 원본 편집]

---