тестирование ssh-ключа на хосте работает нормально, но не в контейнере с теми же ключами

#docker #ssh-keys

#docker #ssh-ключи

Вопрос:

У меня есть несколько ssh-ключей, которые я использую с github. На этой странице я протестировал их локально:

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

Я запускаю docker-контейнер и под томами в 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
  

Почему мои ключи не работают в моем контейнере, но они отлично работают на локальном?

Комментарии:

1. Пожалуйста, поделитесь своим файлом dockerfile

2. Я подозреваю, что на вашем изображении по умолчанию не установлен SSH-клиент.

3. Да, только что добавлено RUN apt-get update amp;amp; apt-get install -y ssh и, похоже, работает сейчас. Возможно, мне следует удалить?

4. Что удалить?

5. @Ashok Он имеет в виду, должен ли он удалить свой вопрос, потому что он считает, что это была глупая ошибка ( ПРИМЕЧАНИЕ: я лично не считаю, что это было глупо — мы все время от времени сталкиваемся с подобными проблемами, и я бы оставил вопрос как есть).

Ответ №1:

Я подозреваю, что на вашем изображении по умолчанию не установлен SSH-клиент. Добавьте строку ниже в свой Dockerfile.

 RUN apk add --no-cache openssh-client