정기간행물/daily

Public Key Retrieval is not allowed 오류

:)jun 2023. 8. 30. 19:08

Mysql 8.0 버전이고 해당 오류가 발생한다면 다음과 같은 옵션을 확인해야한다.

  1. useSSL : DB에 SSL로 연결
  2. allowPublicKeyRetrieval : 서버에서 RSA 공개키를 검색하거나 가져와야하는지

useSS=false라고 작성한다면 allowPublicKeyRetrival=true 해줘야한다.

해당 사이트에 따르면 ssl mode는 default 값이 “Use SSL if the server supports it”이다.

ALLOW Public Key Retrieval은 default 값으로 false가 되어있다.

 

공식 문서

If the user account uses sha256_password authentication, the password must be protected during transmission; TLS is the preferred mechanism for this, but if it is not available then RSA public key encryption will be used. To specify the server’s RSA public key, use the ServerRSAPublicKeyFile connection string setting, or set AllowPublicKeyRetrieval=True to allow the client to automatically request the public key from the server. Note that AllowPublicKeyRetrieval=True could allow a malicious proxy to perform a MITM attack to get the plaintext password, so it is False by default and must be explicitly enabled.

만약 사용자 계정이 sha256_password 인증을 사용한다면 비밀번호는 반드시 보호되어야 한다. TLS가 선호되는 메커니즘이지만 만약 사용하지 않는다면 RSA Public key를 사용할 수 있다. 해당 기능을 사용하기 위해서는 AllowPublicKeyRetrieval=True 설정을 적용하면 된다.

 

reference

MySQL Connection String Options for .NET/C# - MySqlConnector

 

MySQL Connection String Options for .NET/C# - MySqlConnector

A MySqlConnection is configured using a connection string. The connection string options are key/value pairs described on this page.

mysqlconnector.net