Amazon이 공개 키 대신 개인 키를 출시하는 이유는 무엇입니까? 개인 키를 다운로드하여 연결해야합니다. 공개

내 뇌는 공개 키와 개인 키로 차축을 감싸고 있습니다. Amazon EC2 서비스에서 클라우드 서버 (인스턴스)를 생성 한 다음 SSH를 통해 연결하려는 경우 Amazon은 개인 키를 다운로드하여 연결해야합니다. 공개 / 개인 키 뒤에있는 아이디어는 아마존이 공개 키를 다운로드해야한다고 제안하지 않습니까?

또한 고객이 사용할 SFTP 서버를 설정 한 경우 서버에 키를 설치하거나 서버에서 키를 제공해야합니까? 두 경우 모두 공개 키 또는 개인 키 여야합니까?



답변

인증 프로세스에 대해 더 깊이 생각하면 비밀을 유지해야하는 것은 무엇입니까? 아마존은 공개 키의 절반을 알고 있으며 누구나 공개 절반을 알 수 있습니다. 키 쌍의 공개 절반은 개인 절반과 일치 할 때 개인 절반이 인증에 사용되었음을 나타냅니다.

Amazon이 사용자를 위해 키 페어를 생성 할 때 제공되는 개인 키는 자신이 보유한 유일한 키인 경우에만 유용합니다. 그것이 비밀이 아니라면, 그것을 아는 사람은 공개적으로 키 페어의 절반을 보유한 사람을 인증 할 수 있습니다.

인증을받는 사람은 개인 절반을 보유해야합니다 . 세계의 모든 사람이 공개 키의 절반을 잡고 당신을 인증 할 수 있다면 괜찮습니다. 그러나 오직 당신 만이 개인 절반을 통제해야합니다.


답변

Amazon은 키 생성 서비스를 제공합니다. 일부 운영 체제 (기침, Windows, 기침)로 인해 SSH 키쌍을 쉽게 생성 할 수 없을 수도 있습니다.

SSH (및 SFTP)를 사용하면 EC2 인스턴스가 시작될 때 퍼블릭 키가 사용자의 authorized_keys 파일에 설치됩니다. 개인 키는 사용자 만 보유하며 서버에 대한 인증을 위해 제공됩니다.

다음 문서에서 :

http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-CreateKeyPair.html

Amazon은 서버에서 키 페어를 생성하고 HTTPS를 통해 개인 키를 전송하는 것으로 보입니다. 이것은 아마도 완벽하지는 않지만 (이상적으로, 당신과 다른 사람은 개인 키를 소유하지 않을 것입니다), 그러나 이것이 모두 인증 된 세션의 맥락에서 발생하고 오직 당신 (그리고 아마존)이 볼 수 있다는 것을 감안할 때 아마도 그렇게 믿지 않을 것입니다 개인 키 개인 키를 엄격하게 비공개로 유지하면서 EC2 사용을 위해 항상 자체 공개 키를 생성 및 업로드 할 수도 있습니다.

키 인증을 위해 SFTP 사용자를 설정하려면 시스템에서 SSH 키를 생성해야합니다. 키 쌍을 생성 한 후에는 관련 인증 된 _ 키 파일에 설치할 공개 키만 보내야합니다. 이름에서 알 수 있듯이 개인 키는 개인 키입니다.


답변

공개 키 인증은 생각과 반대 방향으로 작동합니다. 공개 키는 메시지를 암호화하고 개인 키는 메시지를 해독합니다. 서버는 계정 소유자의 공개 키를 저장하고이를 사용하여 메시지를 암호화합니다. 개인 키 소유자 만 해당 메시지를 해독 할 수 있습니다.

공개 키로 암호화 된 비밀을 누군가에게 보내면 해당 비밀이 무엇인지 말해 줄 수 있으면 일치하는 개인 키를 보유하고 있다는 것을 알 수 있습니다. 그런 다음 사용자가 인증됩니다.

AWS는 보안상의 이유로 개인 키를 저장하지 않으므로 다운로드하여 저장해야합니다. 프라이빗 키는 AWS의 어느 곳에도 저장되지 않으므로 EC2 인스턴스가 안전하다고 확신 할 수 있습니다.


답변

어떤 의미에서는 중요하지 않습니다. 개인 / 공개 키 쌍은 두 부분으로 구성되며 그 중 공개 키는 사용자에게 달려 있습니다. 하나의 키로 무언가를 암호화 한 경우 다른 하나의 키로 해독해야합니다. 하나의 키를 다른 키가 아닌 공개적으로 게시 한 경우 개인 키는 게시하지 않은 키입니다.

실제 질문에 도달하기 : 아마 아마존이 제공하는 핵심은 자신의 리소스를 제어 할 수있게하는 것이므로 다른 사람에게 제공해서는 안됩니다. 이러한 맥락에서 적어도 개인 키를 설정하려면 Amazon을 신뢰해야합니다.

고객이 이러한 방식으로 로그인하도록하려면 고객과 공유 할 수있는 키를 제공해야하므로 공개 키가 필요합니다. authorized_keys의 서버에이를 설치합니다. “공개 키와 일치하는 개인 키를 가진 사람은이 리소스에 액세스 할 수 있습니다”라고 효과적으로 말합니다.


답변