검수요청.png검수요청.png

SSH

위키원
Asadal (토론 | 기여)님의 2020년 7월 28일 (화) 08:51 판
이동: 둘러보기, 검색

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

개요

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

등장배경

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

역사

  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의 공식 명칭이다. [4]

특징

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

각주

  1. Omega2, 〈(리눅스) SSH 설정 및 사용방법 (원격접속)〉, 《티스토리》, 2020-02-17
  2. Omega2, 〈(리눅스) SSH 설정 및 사용방법 (원격접속)〉, 《티스토리》, 2020-02-17
  3. Omega2, 〈(리눅스) SSH 설정 및 사용방법 (원격접속)〉, 《티스토리》, 2020-02-17
  4. 위키백과, 〈시큐어 셸〉, 《위키백과》, 2020-07-16
  5. Omega2, 〈(리눅스) SSH 설정 및 사용방법 (원격접속)〉, 《티스토리》, 2020-02-17

같이 보기


  검수요청.png검수요청.png 이 SSH 문서는 인터넷에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.