簡體   English   中英

Docker:通過SSH連接到遠程MySQL服務器

[英]Docker: Connect via SSH to Remote MySQL server

我正在為我的 Gitlab CI 使用 Docker,但需要使用 SSH 連接到遠程 MySQL 服務器,然后使用 map 端口 3306 連接到 127.0.0.1

我用下面的命令做SSH端口轉發ssh -L 3306:127.0.0.1:3306 user@remoteserver

我試過查看 Docker 中的 SSH 鍵,但似乎無法“ls”到我認為存儲它們的 root/.ssh 文件夾中,但似乎沒有發生任何事情,因為我收到此錯誤: The command '/bin/sh -c cd root/.ssh' returned a non-zero code: 1

我有一個公鑰,我想從運行 Docker 的計算機上使用它。 我應該把這個文件的內容復制到哪里?

任何對此的幫助都會很棒,我目前正在使用 dockerfile 進行測試,而不是在 Gitlab 上觸發新管道,如果這有什么不同的話。

您可以使用docker run命令來映射端口,如下所示:

docker run -itd --name mysql -p 3306:3306 mysql

然后,當您的容器正在運行時,執行docker cp /path/to/your/public_key /path/where/you/want/to/drop/your_key ,然后您可以執行docker cp /path/to/your/public_key /path/where/you/want/to/drop/your_key docker exec -it mysql bash並將公鑰添加到您的授權密鑰。

在嘗試使用Docker進行高級操作之前,您應該嘗試一些教程。

為了連接到遠程服務器,您需要:

  • 在客戶端有一個本地私鑰
  • 在遠程授權客戶端(由公鑰標識)

因此,您可以:

  1. 生成公鑰/私鑰對
  2. 將客戶端添加到遠程上的授權authorized_keys
  3. 將私鑰作為 CI 變量存儲在 GitLab 中
  4. 在你的工作中使用鑰匙

我已經在這里回答了一個非常相似的問題: https://stackoverflow.com/a/42001323/5972308 ,我認為這符合您的需要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM