Git-репозиторий по вторичному SSH-ключу

Хочу кратко, но понятно рассказать, как я работаю с 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, у меня была такая ситуация:

  • я запускал команду composer от пользователя root, но файл принадлежал другому пользователю и права на этот файл были -rw-------
  • но даже после того, как я выставил права 777 на файл ~/.ssh/config, это не помогло

вывод: git очень тщательно следит за правами данного файла и владелец данного файла должен быть тем, кто запускает git-команду

Оцени публикацию:
  • 3,15
Оценили человек: 3
Теги : git clone, ssh key, bitbucket

Похожие статьи:


Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Сколько будет Οдин + Τри
Главная
X

Новые заметки:

Про что мы забываем когда делаем оценку задачи по времени

Список вопросов для собеседования разработчика по телефону

Symfony2 авторизация без Doctrine2 для чайника

Phpstorm7 LiveEdit

Жесткий хабр или не хабр, тогда кто?

Яндекс.Деньги мошенничество

Как узнать какие страницы в поиске яндекса или это секрет

Последние комменты:

Yapro CMS:

Здравствуйте, Гость | Войти | Регистрация | Карта сайта | RSS ленты | Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2018 YaPro.Ru

Главная » Веб-мастеру » Unix »