Database

[Database] ssh 통신이란?

리거니 2023. 3. 22. 17:32
SSH 란?





 시큐어 셀(Secure SHell, SSH)은

네트워크 상의 다른 컴퓨터에 로그인하거나
원격 시스템에서 명령을 실행하고  다른 시스템으로 파일을 복사할 수 있도록 해주는 응용 프로그램 또는 그 프로토콜을 가리킨다.    

즉, 네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과 같은 Public Network를 통해서  서로 통신을 할 때 보안적으로 안전하게 통신을 하기 위해 사용하는 프로토콜이다.

 


대표적인 사용

데이터 전송

원격 제어

원격 제어의 예

AWS와 같은 클라우드 서비스는 인스턴스 서버에 접속하여 해당 머신에 명령을 내리기 위해서 SSH을 통한 접속을 해야한다.

사용 이유

    보안때문에 FTP나 Telnet과 같은 다른 컴퓨터 통신을 사용하지 않는다.
    SSH는 보안적으로 훨씬 안전한 채널을 구성한 뒤 정보를 교환하기 때문에 보다 보안적인 면에서 뛰어나다.
    어떤 방식으로 서로 다른 컴퓨터가 안전하게 통신하게 하는가?

 


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

Public Key :
    단어 뜻 그대로 공개되어도 비교적 안전한 Key.
    이 키를 통해 메세지를 전송하기 전 암호화를 한다.
    암호화는 가능하지만 복호화는 불가능하다.

Private Key :
    절대로 외부에 노출되어서는 안되는 Key.
    본인의 컴퓨터 내부에 저장하게 되어있다.
    암호화된 메세지를 복호화 할 수 있다.


    
이 한 쌍의 키는 서로 매우 복잡한 수학적인 관계를 맺고 있다.

이러한 키를 통해 서로다른 컴퓨터와 통신을 하기 위해서는 먼서 Public Key를 통신하고 있는 컴퓨터에 복사하여 저장한다. 
그리고 요청을 보내는 클라이언트 사이트 컴퓨터에 접속 요청을 할때 응답을 하는 서버 사이트 컴퓨터에 복사되어 
정장된 Public Key와 클라이언트 사이트에 해당 Public Key와 쌍을 이루는 Private Key와 비교를 하여 서로 한 쌍의 Key인지 아닌지 검사한다.

이렇게 서로 관계를 맺고 있는 Key 라는 것이 증명되면 비로소 두 컴퓨터 사이에 암호화된 채널이 형성되어 key를 활용해 메시지를 암호화하고 복호화하며 데이터를 주고 받을 수 있게된다.


복호화란?
암호화 : 어떤 데이터를 암호화 해서 직접 그 의미를 알지 못하도록 하는 작업
복호화 : 암호화된 데이터를 해독하는 것