У нас есть частное репозиторий в bitbucket, и мы пытались получить к нему доступ через npm, и смогли выполнить локальную установку как git clone, так и npm. Но когда мы пытаемся сделать то же самое в Docker-контейнере, он выдает ошибку, говорящую 'Host key verification failed'
, поэтому нам пришлось добавить known_hosts
(это тот, который позволяет клиенту аутентифицировать сервер), который решил проблему, а затем он бросил другой из-за ошибки Permission denied (publickey)
и нам пришлось добавить ключи id_rsa
и id_rsa.pub
, поэтому мы создали папку (потому что для доступа к папке .ssh нам нужен sudo cmd, который мы не хотим использовать) на компьютере со всеми тремя ключами и в файле Docker, используя скрипт bash, мы пытаемся получить эти ключи, скопировать их в хранилище и передать их в Docker во время работы Docker (удаление ключей SSH после завершения, так как мы не хотим хранить ключи в хранилище) контейнер, и он все еще выдал ошибку, говорящую Permission denied (publickey)
. Через несколько часов мы обнаружили, что это связано с парольной фразой закрытого ключа (id_rsa) ssh, и сгенерировали sshkeys без ключевой фразы, и, наконец, мы можем запустить приложение без каких-либо проблем. Но я думаю, что небезопасно иметь ключи ssh без ключевой фразы. Теперь мой вопрос: есть ли какая-нибудь команда / хак, которая может игнорировать приглашение парольной фразы (которое используется для создания ключей ssh id_rsa
, id_rsa.pub
)? Потому что я хочу создать свои ключи с парольной фразой, но хочу, чтобы docker проигнорировал ее и попал в bitbucket для установки моего частного репозитория. ниже приведены шаги, которым мы следовали.
1. generate ssh keys using `ssh-keygen -t rsa -b 4096 -C
"your_email@example.com"`
2. this will prompt for passphrase (optional)
3. if you provide passphrase it will create your sshkyes with encryption
4. else your key will be without encryption
5. create a folder in your local machine (e.g. keys)
6. Use bash script (create a bash file in your repo) to copy your
keys from local folder into a repository folder ( e.g sshkeys) as
shown below
if [[ -f "/keys/id_rsa" ]]; then
echo "keys exists!"
cp -r /keys/. sshkeys/
exit 0
fi
7. make sure you have git and ssh installed in your docker if not use
below command
apt-get install -y git ssh
8. And then in your docker file add the below code to copy sshkeys to
docker root/.ssh
RUN mkdir -p ~/.ssh
ADD sshkeys/. /root/.ssh/
RUN chmod 600 ~/.ssh/*
9. That's it, these steps are enough to install private repo and run it
in docker
Вопрос: Как избежать запроса пароля в докере и установить репо? Я пробовал большинство опций, предложенных в stackoverflow и github , но, похоже, ничто не помогает мне пропустить приглашение парольной фразы в докере.