어제 Lightsail 실습에 이어 오늘은 EC2 인스턴스를 생성하고, 접속 실습을 진행했다.

SSH란?

SSH 프로토콜(Secure Shell이라고도 함)은 한 컴퓨터에서 다른 컴퓨터로 안전하게 원격 로그인하는 방법입니다. 강력한 인증을 위한 여러 가지 대안을 제공하며, 강력한 암호화를 통해 통신 보안과 무결성을 보호합니다. Telnet , rlogin과 같은 보호되지 않는 로그인 프로토콜과 FTP 와 같은 안전하지 않은 파일 전송 방식 에 대한 안전한 대안입니다 .

SSH 프로토콜은 어떻게 작동하나?

SSH 프로토콜은 클라이언트-서버 모델로 작동합니다. 즉, SSH 클라이언트가 SSH 서버에 연결함으로써 연결이 설정됩니다. SSH 클라이언트는 연결 설정 프로세스를 주도하고 공개 키 암호화를 사용하여 SSH 서버의 신원을 확인합니다. 설정 단계 이후 SSH 프로토콜은 강력한 대칭 암호화 및 해싱 알고리즘을 사용하여 클라이언트와 서버 간에 교환되는 데이터의 프라이버시와 무결성을 보장합니다.

아래 그림은 보안 셸 연결의 단순화된 설정 흐름을 보여줍니다.

SSH는 강력한 암호화 및 무결성 보호 기능을 제공합니다.

SSH 클라이언트와 서버 간에 연결이 설정되면 전송되는 데이터는 설정에서 협상된 매개변수에 따라 암호화됩니다. 협상 과정에서 클라이언트와 서버는 사용할 대칭 암호화 알고리즘에 동의하고 암호화 키를 생성합니다. 통신 당사자 간의 트래픽은 업계 표준의 강력한 암호화 알고리즘(예: AES(Advanced Encryption Standard))으로 보호되며, SSH 프로토콜에는 표준 해시 알고리즘(예: SHA-2(Standard Hashing Algorithm))을 사용하여 전송되는 데이터의 무결성을 보장하는 메커니즘도 포함되어 있습니다.

AWS EC2 실습 과정 요약

  1. t2.micro로 내 서버를 만든다. (만드는 과정에서 keypair도 새로 만든다)
  2. ssh로 접속한다. vscode로도 접속한다.
  3. nginx를 설치하고, 웹 브라우저로 Welcome to nginx가 나타나는지 확인한다.
  4. 서버를 t3a.small로 scale-up 한다.
  5. 다시 ssh로 접속한다. vscode로도 접속한다.
  6. 내 pc의 공개키를 등록해서, 나의 기본키(id_rsa)로 접속한다.
  7. nginx의 index.html을 만들고 <h1>Hello, [이름]</h1> 넣고 잘 뜨는지 확인한다. 브라우저에서 확인한다.
  8. express 서비스를 만들고, 웹 브라우저에서 Hello, [이름]을 확인한다.
  9. 나의 vs-code와 내 pc를 껐다 켜도 express 서비스가 계속 클라우드에 동작하도록 한다.

몇 번 반복하고 나니 ec2 접속에 익숙해졌다!

참고
https://www.ssh.com/academy/ssh/protocol

profile
개발자 지망생. 일단 하고보자

0개의 댓글