繁体   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