SSH에서 공개 키와 개인 키를 사용하는 방법은 무엇입니까?

SSH에서 공개 키와 개인 키를 사용하는 방법은 무엇입니까?

SSH에서 공개/개인 키 인증을 설정했다고 가정해 보겠습니다.

  1. SSH 서버에는 공개 키가 있지만 개인 키는 없지만 SSH 클라이언트에는 공개 키와 개인 키가 모두 있다는 것이 맞습니까?

  2. SSH 프로토콜을 통해 통신할 때 공개 키와 개인 키를 어떻게 사용합니까?

    • SSH 프로토콜을 통해 SSH 서버에 연결하는 명령을 실행하여 SSH 클라이언트에서 통신을 시작할 때 내가 서버에 보내는 초기 메시지는 공개 키 또는 개인 키로 암호화됩니까?

      SSH 서버가 이 초기 메시지를 받으면 공개 키를 사용하여 초기 메시지를 해독합니까? 모든 사람이 공개 키를 갖고 초기 메시지를 해독할 수 있기 때문에 이상하게 들리나요?

    • 서버에 연결하기 위해 보내는 명령이 서버의 파일을 로컬 호스트로 scp하는 것이라면 SSH 서버가 요청한 파일을 보낼 때 공개 키가 파일을 암호화하는 데 사용됩니까?

      SSH 클라이언트가 암호화된 파일을 수신하면 파일을 해독하는 데 개인 키가 사용됩니까?

    • 공개 키와 개인 키는 인증 중에만 사용되며 인증이 완료된 후에는 사용되지 않나요?

      이것이 맞다면 인증 후 SSH 서버와 클라이언트 간의 통신을 위해 전송되는 메시지에 대한 일종의 암호화 및 수신된 메시지의 암호 해독이 있습니까?

감사해요.

답변1

  1. SSH 서버에는 공개 키가 있지만 개인 키는 없지만 SSH 클라이언트에는 공개 키와 개인 키가 모두 있다는 것이 맞습니까?

응, 네가 얘기한다면인증키. 게다가호스트 키, 소유권이 반대인 경우 - 서버는 둘 다 소유하고 클라이언트는 공개 키만 가지고 있습니다.

  • SSH 프로토콜을 통해 명령을 실행하여 SSH 서버에 연결하여 SSH 클라이언트에서 통신을 시작할 때 내가 서버에 보내는 초기 메시지는 공개 키 또는 개인 키를 사용하여 암호화됩니까?

아니요. 초기 메시지는 암호화되지 않습니다. 키 교환 후의 통신은 DH 키 교환의 결과인 공유 비밀(세션 키)에서 파생된 키를 사용하여 암호화됩니다.

SSH 서버가 이 초기 메시지를 받으면 공개 키를 사용하여 초기 메시지를 해독합니까? 모든 사람이 공개 키를 갖고 초기 메시지를 해독할 수 있기 때문에 이상하게 들리나요?

복호화는 개인키를 이용해 진행됩니다(서명 확인은 공개키를 이용해 진행됩니다).

  • 서버에 연결하기 위해 보내는 명령이 서버의 파일을 로컬 호스트로 scp하는 것이라면 SSH 서버가 요청한 파일을 보낼 때 공개 키가 파일을 암호화하는 데 사용됩니까?

아니, 예전처럼요. 파일(전체 세션)은 "세션 키"로 암호화됩니다.

SSH 클라이언트가 암호화된 파일을 수신하면 파일을 해독하는 데 개인 키가 사용됩니까?

아니 아니.

  • 공개 키와 개인 키는 인증 중에만 사용되며 인증이 완료된 후에는 사용되지 않나요?

이것이 맞다면 인증 후 SSH 서버와 클라이언트 간의 통신을 위해 전송되는 메시지에 대한 일종의 암호화 및 수신된 메시지의 암호 해독이 있습니까?

이 질문이 무엇을 의미하는지 잘 모르겠습니다. 세션은 대칭 암호(일반적으로 AES)와 위에서 설명한 키 교환을 통해 얻은 키를 사용하여 암호화됩니다.

관련 정보