在主机上测试 ssh 密钥工作正常,但在具有相同密钥的容器中却不行

testing ssh key on host works fine but not in container with same keys

我有一些用于 github 的 ssh 密钥。每 this 页,我在本地测试它们:

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

我运行正在 docker-container 和 under volumes in 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

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

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

RUN apk add --no-cache openssh-client