SSH 호스트 키가 인식되지 않습니다.

SSH 호스트 키가 인식되지 않습니다.

새로운 호스팅 제공업체에서는 내 계정에서 SSH를 사용할 수 있도록 허용하지만 포트, 서버 주소, 사용자 이름, 비밀번호만 보내주고 키는 보내지 않습니다.

PuTTY를 사용하여 로그인하려고 하면 로그인되지만 스크린샷에 경고가 표시됩니다. 메시지를 건너뛰고 계속하면 PuTTY가 로그인하여 작업을 완료할 수 있습니다. SSH를 사용하여 데이터베이스를 업로드하고 싶습니다. 이 방법으로 사용하는 것이 안전한가요? 아니면 이 호스팅을 건너뛰고 다른 호스팅을 선택해야 합니까?

여기에 이미지 설명을 입력하세요.

답변1

이 경고는 SSH를 통해 서버에 처음 연결할 때 나타나는 정상적인 현상입니다. SSH는 아직 서버의 공개 키를 알지 못하므로 이를 유효한 것으로 간주해야 하는지 묻는 메시지가 표시됩니다. 연결이 가로채거나 잘못된 서버에 연결되고 있다고 의심할 이유가 없다면 안전하게 수락할 수 있습니다. 호스팅 제공업체에 서버의 공개 키를 확인하도록 요청할 수도 있지만 이는 제게는 너무 과도한 것 같습니다.

다음으로 동일한 서버에 연결하면 SSH는 공개 키를 확인하여 ID를 확인하고 키가 변경된 경우 MITM 공격을 나타낼 수 있으므로 경고합니다. (실제로 이는 시스템 관리자가 서버에 대한 새 키 쌍을 생성했음을 의미하는 경우가 많습니다.)

또한 ISP가 키를 제공하지 않는 것이 일반적입니다. 공개 키 인증을 설정하고 비밀번호 기반 인증을 제거하려면 키를 생성하여 직접 수행해야 합니다. 이렇게 하면 귀하는 개인 키의 유일한 소유자가 됩니다.

답변2

SSH는 호스트 키를 사용하여특정 컴퓨터 확인피해자가 아닌지 확인하기 위해중간자 공격. 호스트 키는 일반적으로 컴퓨터에 SSH를 설치할 때 자동으로 생성되므로 컴퓨터를 다시 설치하거나 관리자가 어떤 이유로 변경하는 경우 ssh-keygen호스트 키가 변경될 수 있습니다.

SSH 클라이언트는 해당 컴퓨터에 속하는 SSH 호스트 키를 저장하는 "알려진" 원격 호스트의 로컬 데이터베이스를 생성합니다. 여기서 컴퓨터는 FQDN 또는 IP 주소로 식별됩니다. Linux에서는 일반적으로 .ssh/known_hostsWindows의 PuTTY 사용자 홈 디렉터리에 있는 파일입니다.레지스트리 키에 저장. 접속 시 원격 호스트가 제공한 호스트 키가 로컬 데이터베이스의 항목과 일치하지 않는 경우 SSH 클라이언트는 컴퓨터 접속을 계속할지 여부를 결정할 수 있도록 경고를 발행합니다(예: 중간자 공격이 의심됩니다).

이제 첫 번째 접속 시 원격 호스트의 호스트 키가 아직 로컬 데이터베이스에 저장되지 않았습니다. 따라서 클라이언트는 컴퓨터가 실제로 "올바른 컴퓨터"인지 여부를 알 수 없습니다. 그럴 가능성이 가장 높으므로 제공된 키를 신뢰하고 해당 컴퓨터에 대한 모든 추가 연결에 대해 신뢰할 수 있는 인증으로 저장할 수 있는 옵션을 제공합니다(이 호스트를 신뢰한다면...). 지문으로 식별되는 호스트 키를 알고 있다면,하다예를 클릭하고 연결하려는 컴퓨터의 로컬 데이터베이스에 호스트 키를 저장할 수 있습니다. 이후의 모든 연결에 대해 SSH 클라이언트는 호스트 키가 여전히 동일한지 확인하고, 그렇다면 더 이상 경고가 발행되지 않습니다.

호스트 키가 올바른지 진정으로 "확실히 아는" 유일한 방법은 호스팅 제공업체에 연락하여 컴퓨터 호스트 키의 지문을 알려달라고 요청하는 것입니다.

@Ginnungagap이 의견에서 지적했듯이 SSH 호스트 키를 "게시"하는 방법에는 여러 가지가 있습니다.SSHFP 레코드또는SSH 호스트 인증서, 그러나 PuTTY는 최근에야인증서에 대한 지원이 추가되었습니다., 아직 SSHFP에는 해당되지 않습니다.

관련 정보