SSH 클라이언트에도 공개 키가 필요합니까?

SSH 클라이언트에도 공개 키가 필요합니까?

제가 이해한 바에 따르면 openssh 클라이언트에는 개인 키만 필요하며 해당 공개 키는 서버에 있어야 합니다. 그러나 상세 수준을 3으로 높이면 SSH 클라이언트에 다음이 표시됩니다.

debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/test/.ssh/id_rsa
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 60
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug2: input_userauth_pk_ok: fp SHA256:VvQDLGFJdfO9FUOqa1ODV6iLT4Te0Nm5Bz1OUA57LjY
debug3: sign_and_send_pubkey: RSA SHA256:VvQDLGFJdfO9FUOqa1ODV6iLT4Te0Nm5Bz1OUA57Lj

" "라고 하면 Next authentication method: public key무슨 뜻인가요? 공개 키를 사용하는 이유는 무엇입니까?

답변1

먼저, "공개키 인증"이라는 용어는 공개키/개인키 쌍을 이용한 비대칭키 암호 방식을 이용한 인증을 총칭하는 용어이다.

둘째, 공개키SSH 인증 프로세스의 일부로 서버로 전송됩니다. 클라이언트는 공개 키가 포함된 패킷을 보냅니다. 이 패킷은 해당 개인 키로 암호화됩니다. 이 패킷은 사용자를 식별하며, 서버에서 서명을 확인할 수 있으면 사용자를 인증할 수 있습니다.

서버는 공개키가 서버에 존재하는지 확인합니다. authorized_keys이름에서 알 수 있듯이 파일의 기능은 다음과 같습니다.승인하다대신 메커니즘확인하다기구. 즉, 열쇠의 존재authorized_keys 승인하다사용자는 특정 키를 사용하므로 서버는 공개 키를 허용하지 않습니다. 사용자는 파일에 여러 개의 키를 가질 수 있습니다 authorized_keys.

답변2

공개 키는 개인 키에서 파생될 수 있습니다(이 경우 파생된 경우에는 함께 저장됨을 의미함). 개인키는 비공개이고,공유하지 않음.

따라서 연결 초기 단계에서 어떤 키를 사용할지 알아내려고 할 때. 서버에서 일부 공개 키를 흔들고 있을 수 있습니다. 일치하는 항목이 있으면 서버는 개인 키를 소유하고 있음을 증명하도록 요청합니다.

관련 정보