Запрос
Эта команда docker вводит мой ssh-ключ и имя пользователя в контейнер, подключает этот контейнер к удаленному хосту и затем запускает: echo hello world
на хосте:
docker run --rm \
-e "host=the.host" \
-e "user=my.user.name" \
-v "/home/me/.ssh/id_rsa:/key" \
ubuntu:18.04 /bin/bash -c \
'apt update && apt install -y ssh \
&& ssh -o StrictHostKeyChecking=no $user@$host -i /key
echo hello world'
Я хочу, чтобы команда могла подключиться к удаленному хосту, но я не хочу, чтобы она могла cat /key
и увидела мой ключ ssh.
Какие изменения могутЯ делаю, чтобы добиться этого?
Контекст
Я пишу тестовый бегун.Мой код отвечает за определение того, какие тесты могут быть запущены с какими хостами, но сам тест может не быть написан мной (он извлекается из git-репо при запуске моего тестового бегуна).
Я не беспокоился о том, что мои коллеги злоупотребляли сервером своим тестовым кодом, потому что это злоупотребление было бы видно в системе контроля версий.В этом случае они полу-доверяютЯ * беспокоюсь о том, что кто-то напишет тест, в результате которого мой ключ ssh появится где-нибудь в выводе журнала.
В идеале я сначала установил бы соединение ssh, а затем создал контейнер - каким-то образомпредоставление ему доступа к соединению, но не к ключу.