首页 > 解决方案 > 在主机上测试 ssh 密钥可以正常工作,但不能在具有相同密钥的容器中

问题描述

我有一些与 github 一起使用的 ssh 密钥。根据这个页面,我在本地测试了它们:

ssh -T git@github.com
Hi doug-companyname! You've successfully authenticated, but GitHub does not provide shell access.

我正在运行一个 docker-container,并且在 docker-compose 的卷下我有:

- ~/.ssh:/home/rstudio/.ssh

这是为了给容器与本地相同的键。

当我运行容器时,如果我查看 ~/.ssh 我确实看到了键:

rstudio@9b5b5114115b:~$ ls -l ~/.ssh
total 12
-rw------- 1 1001 1001  452 Nov  7 19:35 id_ed25519
-rw-r--r-- 1 1001 1001  131 Nov  7 19:35 id_ed25519.pub
-rw-r--r-- 1 1001 1001 2212 Nov 15 16:50 known_hosts

这些确实和我当地的东道主一样。但是,当我尝试进行相同的测试时,我得到:

rstudio@9b5b5114115b:~$ ssh -T git@github.com
bash: ssh: command not found

为什么我的密钥不能在我的容器中工作,但它们在本地工作正常?

标签: dockerssh-keys

解决方案


我怀疑你的镜像默认没有安装 SSH 客户端。在 Dockerfile 中添加以下行。

RUN apk add --no-cache openssh-client

推荐阅读