Ssh

Datagrip 上的通信鏈路故障 SSH 隧道

  • March 10, 2022

我現在需要通過 SSH 連接 RDS(本地 -> EC2 -> RDS)。

所以我嘗試通過 Datagrip 上的 SSH 隧道選項連接 MySQL,但是,它無法連接到伺服器。

[08S01] Communications link failure  The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. No appropriate protocol (protocol is disabled or cipher suites are inappropriate).

我嘗試了帶有Standard TCP/IP over SSH選項的 MySQL Workbench。它運作良好。

TCP/IP over SSH和之間有區別SSH Tunnel嗎?

還是我做錯了什麼?

MySQL 工作台

這是我的工作台截圖。有用。

數據夾2

數據夾3

數據夾1

這是我的 Datagrip 螢幕截圖。我將主機寫為 RDS 端點,但它失敗了。

請閱讀問題 DBE-13313並嘗試建議的解決方法,問題在於禁用的 TLSv1 協議:

解決方法 #1

我們最近更新了 java ,由於安全原因,我們已經移到TLSv1了。jdk.tls.disabledAlgorithms因此,要取回它,您需要執行以下操作:

  1. 創建一個custom.java.security包含以下內容的文件:
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
    include jdk.disabled.namedCurves

TLSv1從列表中刪除。

  1. 轉到您的數據源高級選項卡並添加到VM 選項-Djava.security.properties=${PATH_TO_FILE?}/custom.java.security。不要忘記更換${PATH_TO_FILE?}
  2. 重啟IDE。
  3. 你可以連接。

解決方法 #2

如果您正在執行 MySQL 8.0、5.7.28、5.6.46 及更高版本並且您的伺服器配置了 TLSv1.2,您可以在驅動程序中啟用它:打開數據源屬性,切換到高級選項卡並將值設置enabledTLSprotocolsTLSv1,TLSv1.1,TLSv1.2,TLSv1.3

由於 MySQL 錯誤,您可能會收到錯誤bad handshake,這意味著您不能使用 TLSv1.2,在這種情況下,請禁用此選項並使用解決方法 #1。

解決方法 #3

enabledTLSProtocols = TLSv1.1(可選)VM Options = “-Djdk.tls.disabledAlgorithms=SSLv3, TLSv1, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, 包括 jdk.disabled。命名曲線”

引用自:https://dba.stackexchange.com/questions/308266