SSH(Secure Shell)

Seo·2020년 4월 26일
0

CS

목록 보기
5/5
post-thumbnail

SSH 이란?

네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜을 가리킨다. 기존의 rsh, rlogin, 텔넷 등을 대체하기 위해 설계되었으며, 강력한 인증 방법 및 안전하지 못한 네트워크에서 안전하게 통신을 할 수 있는 기능을 제공한다. 기본적으로는 22번 포트를 사용한다.

  • 원격 제어(기존 telnet)
  • 데이터 전송(기존 ftp)

배경

기존의 유닉스 시스템 셸에 원격 접속하기 위해 사용하던 텔넷은 암호화가 이루어지지 않아 계정 정보가 탈취될 위험이 높으므로, 여기에 암호화 기능을 추가하여 1995년에 나온 프로토콜

특징

  • 보안 접속을 통한 rsh, rcp, rlogin, rexec, telnet, ftp 등을 제공.
  • IP spoofing (IP스푸핑, 아이피 위/변조 기법중 하나)을 방지하기 위한 기능을 제공.
  • X11 패킷 포워딩 및 일반적인 TCP/IP 패킷 포워딩을 제공.

용어

rsh

remote shell

컴퓨터 네트워크의 다른 컴퓨터에서 다른 사용자로 셸 명령을 실행할 수 있는 명령 줄 컴퓨터 프로그램

rcp

remote copy

로컬 호스트와 원격 호스트 간 또는 두 개의 원격 호스트 간에 컴퓨터 파일을 전송하는 수단

rlogin

remote login

TCP 포트 513를 통해 통신 사용자가 네트워크를 통해 다른 호스트에 로그인할 수 있도록 유닉스와 같은 컴퓨터 운영 체제를위한 소프트웨어 유틸리티

rexec

remote exec

원격 실행

X11 패킷 포워딩

X Window는 Linux 계열 GUI를 지원하는 도구. X Server와 X Client가 존재하는데 통신 자체를 ssh로 원격 동작하게 할 수 있는 것이 X11 패킷 포워딩

Private Key and Public Key

SSH는 다른 컴퓨터와 통신을 하기 위해 접속을 할 때 우리가 일반적으로 사용하는 비밀번호의 입력을 통한 접속을 하지 않는다.
기본적으로 SSH는 한 쌍의 Key를 통해 접속하려는 컴퓨터와 인증 과정을 거친다.

  • Private Key: 복호화에 사용, 절대 공개되어서는 안되는 Key
  • Public Key : 암호화에 사용. 비교적 공개되어도 안전한 Key

SSH 진행 과정

Private Key와 Public Key를 통해 다른 컴퓨터와 통신을 하기 위해서는
1. 먼저 Public Key를 통신하고하는 컴퓨터에 복사하여 저장
2. 그리고 요청을 보내는 클라이언트 사이드 컴퓨터에서 접속 요청을 할 때 응답을 하는 서버 사이드 컴퓨터에 복사되어 저장된 Public Key와 클라이언트 사이드에 해당 Public Key와 쌍을 이루는 Private Key와 비교를 하여 서로 한 쌍의 Key인지 아닌지를 검사
3. 서로 관계를 맺고 있는 Key라는 것이 증명이 되면 비로소 두 컴퓨터 사이에 암호화된 채널이 형성이 되어 Key를 활용해 메시지를 암호화하고 복호화하며 데이터를 주고 받음.

Reference

SSH 위키피디아
SSH란?

profile
개발관심자

0개의 댓글