2015-01-26 2 views
-4

У меня есть виртуальная машина CentOS 7, размещенная на компьютере Scientific Linux (оба филиала - Red Hat). Я использую докер в качестве SW для эмуляции CentOS через SL. Связь между ними осуществляется через мост (небольшая VLAN), которая настраивается самим докером. При необходимости можно создать больше виртуальных мостов между VM-хостом и док-станцией. Я могу подключить свой хост SL к удаленному git-серверу, использующему свой закрытый ключ через SSH-протокол, и только мой личный ключ предоставит мне доступ.Аутентификация виртуальной машины на сервере Gerit git

Моя проблема заключается в том, что я не могу найти способ аутентифицировать мой размещенный CentOS против сервера git. Я попытался скопировать секретный ключ в папку .ssh, но он не работает. Мне нужно, вероятно, настроить дополнительные параметры сети на моем CentOS или найти способ перенаправления SSH-трафика на мой хост-компьютер. Какие-либо предложения?

git clone -vvv ssh://<user>@<server>:<port>/project/utils 
Cloning into 'utils'... 
Enter passphrase for key '/home/<user>/.ssh/id_rsa': 
Permission denied (publickey). 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 

Моя папка .ssh был скопирован с моего рабочего мерзавца настольного ПК на виртуальную машину, с теми же именами пользователей и прав доступа, как было сказано выше. Тест SSH не работает на клиенте хост-машины, поэтому я думаю, что git может перенаправить SSH-аутентификацию на другой порт. Ssh-keyscan с URL-адресом репозитория Gerrit ничего не возвращает, но это может быть обычная процедура сервера Gerrit.

+0

Ни одна причина для отрицания ... – Alex

+0

Это точно, что не работает. – Alex

+0

Попробуйте «ssh -v -v -v ....» и посмотрите, почему ssh не удается. –

ответ

0

Проблема заключалась в том, что у моего ключа RSA был пароль. С моего хост-компьютера не нужно было вводить пароль, поскольку ssh-agent действовал как интерфейс для моих SSH-библиотек, и он хранил пароль, зашифрованный в памяти.

Это была не виртуальная машина, практически пустая и только с .ssh-папкой (с правильными правами и для правильного пользователя). Я исправил это и автоматизировал решение, добавив команду RUN в свой файл Docker, чтобы изменить пароль на пустую строку, что позволяет тянуть с git при создании изображения. Я не нашел никаких параметров в/etc/ssh, которые меняют, чтобы я мог подключиться без ввода пароля, поэтому я должен предположить, что шаг пароля является обязательным в протоколе RSA для обеспечения конфиденциальности с пользователем, даже если шифрование с помощью открытого ключа пользователя достаточно для его обеспечения.

+0

Возможно, вы найдете http://security.stackexchange.com/a/20713. –

0

Просто идея (там, наверное, более простой способ достичь того же) - временно настроить на чтение/запись монтирования с вашего изображения на файловой системе - запуск оболочки внутри контейнера - создать новый ключ пара из контейнера и напишите файлы ключей на диск - добавьте открытый ключ в свою учетную запись на сервере git - добавьте файл закрытого ключа в файл Docker и заново создайте образ, чтобы он был доступен следующий раз, контейнер перезапускается.

Смежные вопросы