SSH에서 공개/개인 키 인증을 설정했다고 가정해 보겠습니다.
SSH 서버에는 공개 키가 있지만 개인 키는 없지만 SSH 클라이언트에는 공개 키와 개인 키가 모두 있다는 것이 맞습니까?
SSH 프로토콜을 통해 통신할 때 공개 키와 개인 키를 어떻게 사용합니까?
SSH 프로토콜을 통해 SSH 서버에 연결하는 명령을 실행하여 SSH 클라이언트에서 통신을 시작할 때 내가 서버에 보내는 초기 메시지는 공개 키 또는 개인 키로 암호화됩니까?
SSH 서버가 이 초기 메시지를 받으면 공개 키를 사용하여 초기 메시지를 해독합니까? 모든 사람이 공개 키를 갖고 초기 메시지를 해독할 수 있기 때문에 이상하게 들리나요?
서버에 연결하기 위해 보내는 명령이 서버의 파일을 로컬 호스트로 scp하는 것이라면 SSH 서버가 요청한 파일을 보낼 때 공개 키가 파일을 암호화하는 데 사용됩니까?
SSH 클라이언트가 암호화된 파일을 수신하면 파일을 해독하는 데 개인 키가 사용됩니까?
공개 키와 개인 키는 인증 중에만 사용되며 인증이 완료된 후에는 사용되지 않나요?
이것이 맞다면 인증 후 SSH 서버와 클라이언트 간의 통신을 위해 전송되는 메시지에 대한 일종의 암호화 및 수신된 메시지의 암호 해독이 있습니까?
감사해요.
답변1
- SSH 서버에는 공개 키가 있지만 개인 키는 없지만 SSH 클라이언트에는 공개 키와 개인 키가 모두 있다는 것이 맞습니까?
응, 네가 얘기한다면인증키. 게다가호스트 키, 소유권이 반대인 경우 - 서버는 둘 다 소유하고 클라이언트는 공개 키만 가지고 있습니다.
- SSH 프로토콜을 통해 명령을 실행하여 SSH 서버에 연결하여 SSH 클라이언트에서 통신을 시작할 때 내가 서버에 보내는 초기 메시지는 공개 키 또는 개인 키를 사용하여 암호화됩니까?
아니요. 초기 메시지는 암호화되지 않습니다. 키 교환 후의 통신은 DH 키 교환의 결과인 공유 비밀(세션 키)에서 파생된 키를 사용하여 암호화됩니다.
SSH 서버가 이 초기 메시지를 받으면 공개 키를 사용하여 초기 메시지를 해독합니까? 모든 사람이 공개 키를 갖고 초기 메시지를 해독할 수 있기 때문에 이상하게 들리나요?
복호화는 개인키를 이용해 진행됩니다(서명 확인은 공개키를 이용해 진행됩니다).
- 서버에 연결하기 위해 보내는 명령이 서버의 파일을 로컬 호스트로 scp하는 것이라면 SSH 서버가 요청한 파일을 보낼 때 공개 키가 파일을 암호화하는 데 사용됩니까?
아니, 예전처럼요. 파일(전체 세션)은 "세션 키"로 암호화됩니다.
SSH 클라이언트가 암호화된 파일을 수신하면 파일을 해독하는 데 개인 키가 사용됩니까?
아니 아니.
- 공개 키와 개인 키는 인증 중에만 사용되며 인증이 완료된 후에는 사용되지 않나요?
예
이것이 맞다면 인증 후 SSH 서버와 클라이언트 간의 통신을 위해 전송되는 메시지에 대한 일종의 암호화 및 수신된 메시지의 암호 해독이 있습니까?
이 질문이 무엇을 의미하는지 잘 모르겠습니다. 세션은 대칭 암호(일반적으로 AES)와 위에서 설명한 키 교환을 통해 얻은 키를 사용하여 암호화됩니다.