Хочу кратко, но понятно рассказать, как я работаю с bitbucket.org используя разные SSH-ключи.
1. Генерируем еще один SSH-ключ (указывая название файла ключа в процессе генерации)
предположим, мы создали файл id_rsa_2
2. Создаем файл конфигурации SSH-подключений
nano ~/.ssh/config
3. Вписываем в него следующее:
Host bitbucket.org
User git
Hostname bitbucket.org
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Host bb2
User git
Hostname bitbucket.org
PreferredAuthentications publickey
IdentitiesOnly yes
IdentityFile ~/.ssh/id_rsa_2
4. Ранее мы клонировали репозиторий используя стандартный ключ id_rsa, например так:
git clone git@bitbucket.org:user/project.git
и это так и будет работать, но теперь нам нужно склонировать project2 и это можно сделать так:
git clone git@bb2:user/project2.git
удачи господа.
p.s. если Вы ранее склонили project2 и теперь попытаетесь запушить свои изменения, то получите ошибку:
conq: repository access denied.
fatal: The remote end hung up unexpectedly
чтобы проблема исчезла, в файле .git/config измените url репозитория в блоке [remote "origin"]. У Вас должно получиться нечто вроде:
[remote "origin"]
url = git@bb2:user/project2.git
после этого все будет пушиться без проблем.
p.s. если возникает ошибка вида:
[RuntimeException] Failed to execute git clone --mirror 'git@gitlab.yapro.ru:microservices/tools.git' '/root/.composer/cache/vcs/gitlab.yapro.ru-microservices-tools.git/' Cloning into bare repository '/root/.composer/cache/vcs/gitlab.yapro.ru-microservices-tools.git'... Bad owner or permissions on /root/.ssh/config fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
то, попробуйте сначала удалить файл ~/.ssh/config, у меня была такая ситуация:
вывод: git очень тщательно следит за правами данного файла и владелец данного файла должен быть тем, кто запускает git-команду
Комментарии
Комментариев пока нет.