[네트워크] SSH에 대하여

EMMA·2022년 5월 22일
0

[http] http와 네트워크

목록 보기
14/14
post-thumbnail

AWS EC2 접속 시, 사용했던 SSH에 대하여


SSH 란?

(220703 update)
SSH는 Secure Shell Protocol의 약자로, AWS EC2 인스턴스 서버에 접속할 때 사용한 프로토콜이기도 하다.
즉, 원격지에 있는 컴퓨터를 제어하기 위한 프로토콜이며 명령어(shell)를 통해 원격에 있는 SSH 서버를 제어한다.
이 때 SSH 서버에 접근하려는 사용자는 SSH 클라이언트가 된다.


SSH는 TCP 위에서 작동되며,

#SSH는 22번 포트를 사용함 (server address에 접속할 때, 입력한 id로 접속하겠다는 뜻)  
ssh [id]@[server address]

#로그아웃
exit
#AWS EC2 접속 시 입력 내용 
ssh -i foo.pem ubuntu@[AWS EC2 public IP address]

사실 깃헙도 SSH 기반 통신이라는 사실!

우리가 원격 저장소인 github에 push할 때 활용하는 것 또한 SSH다.
(SSH를 통해 파일 전송)

이미지 출처: https://hanamon.kr/네트워크-ssh란/

즉, SSH 는 컴퓨터가 통신할 때 좀 더 보안이 강화된 환경에서 이뤄지도록 사용하는 프로토콜이다. 그래서 SSH는 노출이 되어도 통신 내용이 암호화된 문자로 보여진다.

SSH는 몇 가지 주요 기능을 갖는다.

  • 보안 접속을 통한 rsh,rlogin,telnet,ftp 등을 제공
    • 파일 전송, 원격 제어가 주요 기능
  • IP spoofing (IP 위/변조 기법)을 방지하기 위한 기능을 제공
  • X11 패킷 포워딩 및 일반적인 TCP/IP 패킷 포워딩(포트 포워딩)을 제공
    • X11 forwarding
      : GUI 기반의 어플리케이션을 실행하기 위한 방법
      : 예시로, 서버에 접속해 브라우저 실행을 명령하면 클라이언트 side에서도 표시되는 것
      : X윈도우 기반, 서버-클라이언트 모두 X윈도우 기반이어야 함
    • 포트 포워딩 (220703 update)
      : SSH 클라이언트의 포트 번호를 먼저 지정한다 (e.g. 10000)
      : 클라이언트가 데이터베이스(3306번) 접속을 시도하면, SSH 서버에서 이 접속을 22번 포트를 통해 받는다
      : 해당 접속을 다시 3306번으로 포워딩해준다

이미지 출처: http://www.ktword.co.kr/test/view/view.php?m_temp1=2524

SSH의 보안 알고리즘

SSHpublic key, private key 라는 한 쌍의 key를 통해 인증 과정을 거친다.
즉, 우리가 흔히 말하는 공개키/비공개키로 인증을 하는 방식인 것.

  • public key는 수신자가 이미 공개한 공개 key다.
  • 발신자는 수신자에게 public key를 통해 암호화한 메세지를 보낸다.
  • 수신자는 자신만이 알고 있는 private key를 통해 메세지를 복호화한다.
    (private keypublic key가 한 쌍임을 확인)

SSH vs HTTPS (220526 update)

HTTPS는 사용자의 id, password로 인증한다.
반면 SSH는 public key로 인증한다.


참고 자료
https://ko.wikipedia.org/wiki/시큐어_셸
http://bahndal.egloos.com/534415
https://hanamon.kr/네트워크-ssh란/
https://youtu.be/jUyrwaCct44
http://www.ktword.co.kr/test/view/view.php?m_temp1=2524

profile
예비 개발자의 기술 블로그 | explore, explore and explore

0개의 댓글