SSH

·2023년 5월 12일
0

개발 지식

목록 보기
71/96
post-thumbnail

SSH

네트워크 상에서 안전하게 원격지 컴퓨터에 접속하고 제어하기 위한 프로토콜이다. SSH는 암호화된 통신을 사용하여 데이터를 보호하며, 로그인 인증 및 암호화된 키를 사용하여 보안성을 높인다.

EC2 인스턴스에 접속하기 위해서는 SSH 클라이언트가 필요하다. 보통 Unix/Linux/MacOS 의 경우는 터미널을 통해 자체적으로 ssh 명령어를 사용할 수 있고, Windows 의 경우에는 Putty 나 Git Bash를 설치하여 SSH 클라이언트를 이용한다.

EC2 접속에는 다음과 같은 명령어를 입력해 접속한다.

ssh -i [인스턴스 시 생성한 .pem 파일의 경로] [ec2 public IP 주소 | DNS 주소]

SSH 의 경우에도 HTTPS 와 비슷한 인증서 인증과정이 수행된다. 서버는 공개키와 개인키를 생성하고, 공개키를 클라이언트에게 제공한다. 클라이언트가 서버에 접속할 때, 서버는 클라이언트가 보내는 인증정보를 확인하기 위해 서버의 공개키를 이용하여 전송된 인증 정보를 복호화하고, 인증 정보가 올바른지 확인한다.

.pem (Privacy Enhanced Mail)

두 개체를 서로 연결하기 위해 사용되는 암호화된 인증 수단으로, 인증서 및 키를 사용하는 연결 과정에 사용되는 파일 형식이다. .pem 은 주로, 다음과 같은 용도로 사용된다.

  1. SSL/TLS 인증서 : HTTPS 를 수행하기 위한 디지털 인증서로 .pem 형식을 사용한다.
  2. SSH 키 : SSH 클라이언트에서 원격 서버에 접속할 때 필요한 인증 수단이며, 주로 EC2 인스턴스와 같은 클라우드 서비스에서 원격 서버에 접속할 때 해당 .pem 파일을 포함해 인증 과정을 진행한다.
  3. 개인키 : 개인 키는 중요한 정보를 보호하기 위해 이를 암호화하여 보안을 강화할 수 있다. 일반적으로 암호화된 개인 키는 .pem 파일로 제공이 된다.

RSA 알고리즘

SSH를 사용하여 원격 서버에 연결할 떄, RSA 알고리즘이 인증 과정에서 사용이 된다. 일반적으로 SSH 클라이언트는 원격 서버에 연결할 때, 원격 서버의 공개키를 요청하고 받은 공개키를 이용하여 세션키를 생성한다. 이 세션키로 통신을 암호화한다.

SSH 클라이언트가 원격 서버의 공개키를 받은 후, 이 공개키가 원격 서버가 보내준 것임을 검증하기 위해 RSA 알고리즘이 사용된다. 구체적으로는 원격서버의 공개키를 인증기관에서 발급한 인증서에 담아 서명한 후, 이 인증서를 SSH 클라이언트에게 제공한다. SSH 클라이언트는 인증서가 신뢰할 수 있는 인증기관에 의해 서명된 것인지를 검증한 후, 인증서에 담긴 공개키를 이용하여 세션키를 생성한다.

해당 세션키는 SSH 클라이언트와 서버가 서로 연결을 종료할 때 삭제된다.

profile
새로운 것에 관심이 많고, 프로젝트 설계 및 최적화를 좋아합니다.

0개의 댓글