의견.png

SSH

위키원
k8679026 (토론 | 기여)님의 2020년 7월 27일 (월) 17:44 판
이동: 둘러보기, 검색

시큐어 셸(Secure Shell, SSH)은 네트워크의 다른 컴퓨터에 로그인 할 수 있으며 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 프로그램이다. 강력한 인증 방법으로 안전하지 못한 네트워크에서 안전하게 통신을 할 수 있는 기능을 제공한다.

개요

1995년 핀란드의 Tatu Ylönen이 시큐어 셸의 첫 버전을 프리웨어로 내놓았고, 그해 7월에는 50개국에 2만 명이 사용할 정도로 급성장 하였다. 동년 10월, SSH Communications Security이라는 회사를 창립하였고 시큐어 셸은 곧 상용 라이센스로 묶이게 되었다. 시큐어 셸은 네트워크상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜을 가리킨다. 이 프로토콜은 보안에 취약점을 가지고 있는 프로토콜, 즉 원격 로그인(rlogin), 원격 명령 실행(rsh), 원격 파일 복사(rcp), 원격 접속 서비스(telnet), 파일 전송용 프로토콜(ftp) 등을 대체하여 사용되며 안전하지 못한 네트워크에서 안전하게 통신을 할 수 있는 암호화된 연결을 제공한다. 기본적으로는 22번 포트를 사용하며, 암호화 기법을 사용하기 때문에, 통신이 노출된다고 하더라도 이해할 수 없는 암호화된 문자로 보인다.

등장배경

기존의 프로토콜은 암호화가 되어있지 않아 네트워크 스니핑 과 같은 공격에 매우 취약하다. 스니핑은 네트워크상의 패킷을 감청하는 것을 말하는데, 이 패킷들에 아이디나 암호 같은 사용자 계정 정보나, 개인 신상 정보들에 이르기까지 사용자와 서버 간의 모든 통신 내용을 볼 수 있다는 문제가 있다. 특히 이 과정에서 서버의 관리자 계정이 탈취당할 수 있다. 이는 원격지에 파일을 전송한다던가 하는 경우에도 동일하게 적용된다. 원격지에 파일을 전송하기 위해 로그인을 하는 경우부터, 어떤 내용의 파일이 전송되었는지도 그대로 확인할 수 있다. 이러한 문제를 피하고자 “안전하지 않은 네트워크상에서, 암호화된 채널을 생성하여 안전하게 통신할 수 있는” 시큐어 셸 프로토콜이 탄생했다. 이것을 이용하면, 설령 스니핑 공격으로 패킷을 감청당하더라도 해커는 그 내용을 전혀 알 수 없게 된다.

역사

  1. 버전 1.x
    • 1995년 핀란드 헬싱키 공과 대학교의 연구원 Tatu Ylönen는 자신의 대학 망에서 발생한 암호 스니핑 공격을 이유로 SSH-1이라는 이름의 최초 버전의 시큐어 셸 프로토콜을 설계하였다. 1995년 7월 프리웨어로 출시하였고 이 도구는 빠르게 인기를 끌 게 되었다.
  2. 버전 1.99
    • 2006년 1월 버전 2.1이 잘 정착된 이후 RFC 4253은 시큐어 셸 버전 2.0 및 이하를 둘 다 지원하는 서버가 프로토 버전을 1.99로 식별해야 한다고 규정하였다. 실제 버전은 아니며 하위 호환성을 식별하는 방식이다.
  3. OpenSSH / OSSH
    • 1999년 오픈소스 라이센스로 풀린 1.2.12 버전을 사용했다. 이 버전을 기반으로 Björn Grönvall 라는 개발자가 OSSH 를 제작했고, 이 OSSH 를 기반으로 다시 OpenBSD 개발자들이 OpenSSH 를 개발하였다. OpenBSD 는 BSD 라이센스였으며, 거의 무제한으로 열려있었다. 이로 인해, 현존하는 대부분의 배포판에서는 OpenSSH 가 제공되게 된다.
  4. 버전 2.x
    • 2006년에 이 프로토콜의 개정판 시큐얼 셸 버전 2(SSH-2)가 표준으로 채택되었다. 이 버전은 버전 1과 호환되지 않는다. 현재, 국제 인터넷 표준화 기구(Internet Engineering Task Force, IETF)에서 시큐어 셸 버전 2의 표준을 관리하고 있으며 "Secsh"는 SSH 프로토콜 버전 2를 책임지는 IETF 워킹 그룹에 대한 IETF의 공식 명칭이다.


특징

  1. 암호화된 패킷을 전송한다.
    • SSH에서는 기본적으로 패킷을 포함한 전송하는 모든 트래픽을 암호화해서 전송한다. 이는 도청이나 세션 하이재킹, 패킷 스니핑 등 보안 공격을 방지하는 데 효과적이라서 보안성이 뛰어나다는 평을 받는다.
  1. 클라이언트와 서버라는 관계가 존재한다.
    • SSH를 사용할 때 두 패키지 (ssh_server, ssh_client) 사이에 TCP라는 보안 채널을 별도로 생성한다. 이 보안 채널을 통해 서로를 인증한 뒤, 서버가 클라이언트를 인증할 수 있도록 여러 프로그램을 호출한다. 보안 채널이 형성되고 나면 클라이언트에서는 여러 개의 세션을 사용할 수 있다.
  1. sftp를 지원한다.
    • 연결된 두 시스템 간의 안전한 파일전송을 위해서 SFTP 기능을 지원한다. 서버에 접속할 계정과 해당 파일의 위치만 알고 있다면 SFTP를 이용해서 서버에 있는 파일을 가져와 사용할 수 있다.
  1. 패스워드 없이 로그인이 가능하다.
    • 초기에 서버와 클라이언트는 계정명과 IP주소를 입력한 뒤 passwd를 요구한다. 이후에 원격접속을 시도할 때는 별도의 passwd 없이 바로 로그인할 수도 있다.
  1. scp을 지원한다.
    • 서버와 클라이언트 사이에 로그인하지 않고도 scp를 이용해 원격으로 파일을 복사할 수 있는 기능이다. [1]



같이 보기


  의견.png 이 SSH 문서는 인터넷에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.  

  1. Omega2, 〈(리눅스) SSH 설정 및 사용방법 (원격접속)〉, 《티스토리》, 2020-02-17