네트워크 상에서 안전하게 원격지 컴퓨터에 접속하고 제어하기 위한 프로토콜이다. SSH는 암호화된 통신을 사용하여 데이터를 보호하며, 로그인 인증 및 암호화된 키를 사용하여 보안성을 높인다.
EC2 인스턴스에 접속하기 위해서는 SSH 클라이언트가 필요하다. 보통 Unix/Linux/MacOS 의 경우는 터미널을 통해 자체적으로 ssh 명령어를 사용할 수 있고, Windows 의 경우에는 Putty 나 Git Bash를 설치하여 SSH 클라이언트를 이용한다.
EC2 접속에는 다음과 같은 명령어를 입력해 접속한다.
ssh -i [인스턴스 시 생성한 .pem 파일의 경로] [ec2 public IP 주소 | DNS 주소]
SSH 의 경우에도 HTTPS 와 비슷한 인증서 인증과정이 수행된다. 서버는 공개키와 개인키를 생성하고, 공개키를 클라이언트에게 제공한다. 클라이언트가 서버에 접속할 때, 서버는 클라이언트가 보내는 인증정보를 확인하기 위해 서버의 공개키를 이용하여 전송된 인증 정보를 복호화하고, 인증 정보가 올바른지 확인한다.
두 개체를 서로 연결하기 위해 사용되는 암호화된 인증 수단으로, 인증서 및 키를 사용하는 연결 과정에 사용되는 파일 형식이다. .pem 은 주로, 다음과 같은 용도로 사용된다.
SSH를 사용하여 원격 서버에 연결할 떄, RSA 알고리즘이 인증 과정에서 사용이 된다. 일반적으로 SSH 클라이언트는 원격 서버에 연결할 때, 원격 서버의 공개키를 요청하고 받은 공개키를 이용하여 세션키를 생성한다. 이 세션키로 통신을 암호화한다.
SSH 클라이언트가 원격 서버의 공개키를 받은 후, 이 공개키가 원격 서버가 보내준 것임을 검증하기 위해 RSA 알고리즘이 사용된다. 구체적으로는 원격서버의 공개키를 인증기관에서 발급한 인증서에 담아 서명한 후, 이 인증서를 SSH 클라이언트에게 제공한다. SSH 클라이언트는 인증서가 신뢰할 수 있는 인증기관에 의해 서명된 것인지를 검증한 후, 인증서에 담긴 공개키를 이용하여 세션키를 생성한다.
해당 세션키는 SSH 클라이언트와 서버가 서로 연결을 종료할 때 삭제된다.