Technical NOTE

SSH에서 사용하는 RSA 인증 방식: 순서대로 알아보기 본문

OS 관련

SSH에서 사용하는 RSA 인증 방식: 순서대로 알아보기

테크니컬노트 2024. 9. 12. 16:23
반응형
- 작성일 : 2024.09.12

 

SSH에서 사용하는 RSA 인증 방식에 대해 알아보겠다.

SSH는 서버와 클라이언트 간의 안전한 연결을 제공하는데, 이 과정에서 RSA라는 비대칭 암호화 알고리즘을 사용한다.

그럼, SSH에서 RSA 인증이 어떻게 이루어지는지 하나하나 살펴보자?

 


1. 키 값 생성하기

 

먼저, 클라이언트는 RSA 키 쌍을 생성해야 한다.

이 키 쌍은 두 가지로 이루어져 있는데, 공개 키개인 키이다.

공개 키는 서버에 제공하고, 개인 키는 본인만 사용할 수 있도록 비밀로 유지해야 한다.

키 쌍을 생성하기 위해서는 ssh-keygen 명령어를 사용하면 되는데. 아래 명령어를 터미널에 입력한다:

 

 

이 명령어를 실행하면, 공개 키와 개인 키가 생성된다.

일반적으로 공개 키는 ~/.ssh/id_rsa.pub 파일에, 개인 키는 ~/.ssh/id_rsa 파일에 저장된다.

 

2. 서버에 공개키 등록하기

 

공개 키를 생성했다면, 이를 서버에 등록해야 한다.

이 과정은 클라이언트가 서버에 접속할 때 인증을 위해 필요한 단계이다.

클라이언트의 공개 키를 서버의 authorized_keys 파일에 추가하면 된다.

서버에 공개 키를 등록하는 방법은 간단하다

. 다음 명령어를 사용하여 클라이언트의 공개 키를 서버로 전송하고 등록한다:

 

cat ~/.ssh/id_rsa.pub | ssh <user_name>@<server_name> 'cat >> ~/.ssh/authrized_keys

이렇게 입력하면 처음 에는 root 암호를 물어보지만, 다음번에는 물어보지 않는다.

 

 

이제 클라이언트는 개인 키를 사용해 서버에 안전하게 연결할 준비가 되어있는 것이다.

 

3. ssh 연결 시도

 

이제 클라이언트는 서버에 SSH를 통해 연결을 시도한다.

ssh user@server 명령어를 입력하면, 서버는 클라이언트의 공개 키를 사용해 클라이언트가 인증된 사용자임을 확인하게 된다.

 

4. 서버에서 난수 전송(Challenge)

 

서버는 클라이언트가 신뢰할 수 있는지 확인하기 위해 난수 또는 도전 값(Challenge)을 클라이언트에게 전송한다.

이 값은 클라이언트만이 복호화할 수 있는 형태로, 클라이언트의 개인 키로 암호화된다.

 

5. 클라이언트의 서명 및 서버 인증

 

클라이언트는 서버로부터 받은 난수를 자신의 개인 키로 암호화한 뒤, 이를 서버로 다시 전송한다.

서버는 클라이언트가 등록한 공개 키를 사용해 이 암호화된 값을 복호화한다.

만약 복호화된 값이 서버가 전송한 원래 난수와 일치하면, 클라이언트는 올바른 개인 키를 가지고 있는 것이므로 인증에 성공하게 된다.

 

6. 인증 완료 및 SSH 연결

 

서버는 클라이언트의 인증이 성공하면, 안전한 SSH 연결을 허용한다.

이제 클라이언트는 서버에 접속할 수 있으며, 데이터는 안전하게 암호화된 통신을 통해 전송된다.

 


 

SSH에서 RSA 인증 방식은 안전한 통신을 위한 강력한 방법이다.

이 방식은 비대칭 암호화를 사용해 클라이언트가 서버에 안전하게 인증할 수 있도록 한다.

공개 키는 서버에 제공하고, 개인 키는 본인이 보관하는 방식으로 보안성을 강화할 수 있게 된다.

따라서, SSH로 서버에 접속할 때 RSA 인증 방식을 통해 높은 보안 수준을 유지할 수 있게 된다.

 

 

 

반응형

'OS 관련' 카테고리의 다른 글

VMWare 6 Player에서 hardware version not supported 발생  (0) 2024.11.20
putty 자동 로그인 방법  (1) 2024.09.12