Docker 上下文如何使用特定的 ssh key

标签 docker

我想使用 docker 上下文通过 ssh 联系服务器。我的本地有许多不同的 ssh key 。如何告诉上下文使用特定键?我试过了:

docker context create test --docker "host=ssh://<username>@<ip-of-server>,key=C:/path/to/key"
但没有骰子,它总是要求输入密码。有没有办法告诉 docker 上下文使用什么 ssh key ?

最佳答案

您在提供的示例中尝试使用的 key 是指 TLS key 。
Docker 正在使用您的本地 SSH 代理。连接可以访问加载到代理中的任何 key :

  • 如果尚未存在,请安装 SSH 代理;
  • 生成SSH key 对;
  • 将私钥添加到要从中发出 docker 命令的机器上的 SSH 代理;
  • 在目标 Docker 主机上添加公钥,在 <username-home>/.ssh/authorized_keys
  • 现在尝试使用常规 SSH 连接到目标 Docker 主机( ssh <username>@<ip-of-server> )。接受指纹。如果没有要求您输入密码,docker 也不会要求您输入密码。

  • 创建并激活 docker 上下文,然后运行一个虚拟的 docker 命令:
    docker context create test --docker "host=ssh://<username>@<ip-of-server>"
    docker context use test
    docker ps
    

    关于Docker 上下文如何使用特定的 ssh key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63868735/

    相关文章:

    docker - 在 docker 容器中加载 neo4j 转储时出现问题

    docker - 在 Docker 容器中填充 Neo4J

    linux - 在 Linux : E: The "https://download.docker.com/linux/ubuntu una Release" repository does not have a Release file 上安装 Docker 时出现问题

    web - 遵循容器内的 docker 端口映射

    python - 从 python 运行 .sh 脚本作为 sudo

    docker - 我的 Docker 服务的 URL 是什么?

    laravel - errno 13 _ 权限被拒绝 : ´/usr/lib/python3. 10/__pycache__/__future__

    Jenkins:在 docker slave 上运行 docker 命令

    git - docker 中的 ssh-add - 无法打开与您的身份验证代理的连接

    docker - 为什么我在 Docker 桥接网络中获取网关 IP 作为源地址?