본문 바로가기

애기 개발자(현재)/개발자 단어 정리

ssh란

서문

앱 개발을 하다가 AWS와 같은 클라우드 서비스를 이용하게 되었다

AWS의 인스턴스 서버에 접속해 편하게 머신에 명령을 내리기 위해서 찾아보았고

아마존 aws에 접속을 한 뒤 내 컴퓨터의 vs코드에 접속해서 편하게 연결하려면 어떻게 하지 하다가 

SSH로 연결하면 된다는 것을 알았다 하지만 ssh에 제대로 알지 못해 정리해 본다 

지금은 대강 다른 컴퓨터에 연결할 때 쓰는 것으로 알고 있다 맞을까 확인해 보자 

 


SSH 약어 뜯어보기 Secure Shell Protocol이라고 한다 

하나하나 뜯어 보자 

Secure = 안전한 

Shell = 껍데기

Protocol = 규약

안전한 껍데기 규약이란다 뭔 뜻일까 안전하게 껍데기로 보호하는 규약(약속)이라는 걸까?

아직도 모르겠어서 더 깊숙히 들어가 본다


SSH란?

네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과 같은 Public Network를 통해 서로 통신을 할 때 

보안적으로 안전하게 통신을 하기 위해 사용하는 프로토콜입니다 

-이제 좀 이해가 되는 것 같다 컴퓨터끼리 연결 및 통신할 때 보안적으로 안전하게 하는 것이라고 한다 

  • 데이터 전송
    (EX : 데이터 전송을 통해 저장하는 원격 저장소 깃헙
  • 원격 제어
    (EX : AWS의 인스턴스 서버에 접속하여 해당 머신에 명령을 내리기 위한 SSH

 

FTP Telnet와 같은 다른 컴퓨터와 통신을 위해 사용되는 프로토콜도 있지만 이것을 사용하는 이유 

"보안" 때문이라고 한다 이들은 보안에 취약해 민감한 정보 (로그인 정보같은 것)을 주고 받을 때 

직접 네트워크를 통해 넘기기 때문에 누구나 해당 정보를 열어볼 수 있어 보안에 상당히 취약하다고 한다

 

SSH는 보안적 채널을 구성 후 정보를 교환하기 때문에 보다 보안적인 면에서 훨씬 뛰어나다고 함

 


Private Key and Public Key

 

SSH는 다른 컴퓨터와 통신을 하기 위해 접속을 할 때 일반적으로 사용하는 비밀번호의 입력을 통한 접속을 안한다

SSH는 한 쌍의 Key를 통해 접속하려는 컴퓨터와 인증 과정을 거치게 된다. 이 한 쌍의 Key는 다음과 같다

  • Private Key
  • Public Key

Public Key는 단어 뜻 그대로 공개되어도 비교적 안전한 Key이다

Public Key를 통해 메시지를 전송하기 전 암호화를 하게 된다 

Public Key로는 암호화는 가능하지만 복호화는 불가능

 

이와 쌍을 이루는 Private Key는 절대로 외부에 노출이 되어서는 안되는 Key로 

본인의 컴퓨터 내부에 저장하게 되어 있다.

이 Private Key를 통해 암호화된 메시지를 복호화할 수 있다고 한다

\

이렇게 한 쌍의 Public Key와 Private Key는 서로 매우 복잡한 수학적인 관계를 맺고 있다 

\

Private Key와 Public Key를 통해 다른 컴퓨터와 통신을 하기 위해서는 

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

결론 

가볍게 찍먹을 해 보았다 

이제 간단히 알아 보았으니 원리를 적용하여 ssh 접속을 하여 앱을 만들어야 하는데 

잘 할 수 있을지 모르겠다 정진하는 수밖에...

 

정리 

ssh는 컴퓨터 간에 파일을 안전하게 전송하게 한다 

필자는  실제로 지금 하는 중인데 윈도우에서 vs코드와 우분투 서버 연결하는 법 이라고 치니 자세하게 나온다 

도움이 되었길 바란다 

참고 자료 

  1. SSH란무엇인가? - 동영상으로 알아보기 
  2. SSH Key - 동영상으로 알아보기