강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

정한용님의 프로필 이미지
정한용

작성한 질문수

그림으로 쉽게 배우는 네트워크

Telnet과 SSH

SSH 인증방식에 대해 질문드립니다.

작성

·

10

·

수정됨

1

SSH 강의 내용을 정리해보면
Private Key는 복호화에 사용
Public Key는 암호화에 사용
1. Client가 서버에 SSH접속 시도

2.서버에서 랜덤한 문자열을 Public Key를 이용해 암호화, Client에게 전송

3.Client가 Private Key를 이용하여 전달 받은 암호화 메시지를 복호화, 복호화된 문자열을 서버로 전송

4.서버에서 암호화하기 전 문자열과 전달 받은 복호화 된 문자열이 일치하면 인증 완료

제가 알고 있기로는

1.클라이언트가 서버에 접속 시도


2.서버에서 랜덤 문자열(평문)을 클라이언트에게 보냄.

3.클라이언트에서 서버로부터 전달 받은 랜덤 문자열을 Private Key를 이용하여 특수한 수학적 연산을 적용(Private Key로 서명, 암호화) 후 서버에 전송

4.서버에서 클라이언트에게 전달 받은 전자 서명을 Public Key를 이용하여 검증(복호화)
검증 내용이 자신이 최초에 보낸 랜덤 문자열과 일치하면 접속허용

이렇게 알고 있는데.. 두 방식이 다른 방식인가요?

답변 2

0

감자님의 프로필 이미지
감자
지식공유자

안녕하세요 정한용님!

말씀주신 표현과 강의 내용은 표현이 조금 다르지만 내용은 동일합니다.

개인키로 서명, 공개키로 검증로 기억해주시면 될 것 같습니다!😄

0

안녕하세요, 인프런 AI 인턴입니다. 정한용님!

SSH 인증 방식에 대한 좋은 질문을 주셨습니다. SSH 인증에서 사용하는 공개 키 암호화 방식은 안전한 서버 인증을 위해 클라이언트와 서버 간의 교환 과정을 포함합니다. 질문에 주신 두 가지 절차는 서로 다른 관점에서의 설명 같은데요, 이를 명확히 하기 위해 조금 상세히 설명드리겠습니다.

SSH 인증 과정:

  1. 클라이언트가 서버에 접속 시도: 클라이언트는 서버에 접속 요청을 보냅니다.
  2. 서버에서 랜덤 문자열 전송: 서버는 클라이언트의 요청을 받은 후 무작위 문자열(Nonce)을 클라이언트에게 전송합니다.
  3. 클라이언트의 서명: 클라이언트는 이 문자열을 자신의 Private Key를 사용해 서명한 뒤, 서버에 다시 전송합니다. 여기서 서명 과정은 클라이언트가 서명할 때 “특수한 수학적 연산”을 통해 자신의 Private Key를 사용합니다.
  4. 서버에서 검증: 서버는 클라이언트의 서명을 클라이언트의 Public Key를 이용해 검증합니다. 검증 결과가 자신이 원래 발송한 문자열과 일치하면, 클라이언트가 올바른 Private Key를 소유하고 있다는 것을 확인할 수 있습니다.

차이점이 있는 이유:

  • 첫 번째 설명에서는 암호화와 복호화라는 과정으로 이해되는 반면, 두 번째 설명에서는 이러한 과정이 서명과 검증의 절차로 묘사되고 있습니다. 기본적으로 SSH 인증 방식은 클라이언트가 올바른 Private Key를 가지고 있는지를 확인하기 위해 서명과 검증 단계를 사용하는데, 이는 안전한 통신을 위한 핵심 개념입니다.

따라서, 두 가지 설명은 동일한 과정을 다른 각도로 설명한 것이라 이해하시면 좋겠습니다. 추가적인 이해를 위해, 아래 링크의 관련 질문들을 확인하시면 좋을 것 같습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

정한용님의 프로필 이미지
정한용

작성한 질문수

질문하기