sshd(8) 매뉴얼 페이지에서:
OpenSSH SSH 데몬은 SSH 프로토콜 2만 지원합니다. 각 호스트에는 호스트를 식별하는 호스트별 키가 있습니다. 클라이언트가 연결될 때마다 데몬은 공개 호스트 키로 응답합니다.클라이언트는 호스트 키를 자체 데이터베이스와 비교하여 변경되지 않았는지 확인합니다. 순방향 비밀성은 Diffie-Hellman 키 계약을 통해 제공됩니다. 이 키 협상으로 인해 공유 세션 키가 생성됩니다.세션의 나머지 부분은 대칭 암호를 사용하여 암호화됩니다.
(내가 강조함)
누군가 인증 프로세스가 어떻게 작동하는지 설명해 줄 수 있나요? 제 생각에는:
- 각 호스트에는 고유한 SSH 키(공개 및 개인)가 있습니다.
- 클라이언트가 서버에 연결되면 sshd 데몬은 클라이언트에 공개 키를 제공합니다.
- 그러면 고객은내가 이해하지 못하는 일을 해라
- 그 후에 나머지 세션은 암호화됩니다.
내가 맞나요? 누군가 그것이 무엇을 의미하는지 자세히 설명할 수 있습니까?클라이언트는 호스트 키를 자체 데이터베이스와 비교하여 변경되지 않았는지 확인합니다.방법?
답변1
클라이언트가 호스트 키를 자체 데이터베이스와 비교하여 변경되지 않았는지 확인하는 것이 무엇을 의미하는지 자세히 설명할 수 있습니까?
(이전에 알려지지 않은) 기계를 입력 하면 ssh
다음 쿼리를 받게 됩니다(예: ECDSA 유형 키).
ssh user@newhost:
The authenticity of host 'newhost (<IP-address>)' can't be established.
ECDSA key fingerprint is SHA256:<fingerprint>.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
대답할 때 yes
:
Warning: Permanently added 'newhost,<fingerpint>' (ECDSA) to the list of known hosts.
이제 호스트 지문이 파일 ~/.ssh/known_hosts
(기본 위치)에 추가되었습니다.
향후 연결 시 이 지문을 사용하여 호스트를 고유하게 식별할 수 있으므로 대화가 발생하지 않습니다. 그러나 호스트가 이를 수행하지 못하면 호스트 변경에 대한 경고를 받게 됩니다. 이는 ssh
클라이언트 로서 이에 대해 경고받지 않는 한 누구도 호스트를 캡처하거나 도메인을 리디렉션하는 등의 작업을 수행할 수 없도록 하기 위한 것입니다 .
이를 수동으로 한 번 수락한 웹사이트 인증서와 비교해 보세요. 변경되면 웹사이트가 안전하지 않은 것으로 표시됩니다.