Ответ 1
Перед запуском: gitbox - удаленный компьютер с установленным git и gitolite. Пользователь git - это пользователь, который gitolite работает как на gitbox.
Вы можете преодолеть эту ошибку с помощью (1) создания новой пары ключей, (2) регистрации открытого ключа в gitbox и (3) путем обеспечения того, чтобы при подключении к gitbox, который вы всегда подключаете как git, используя ваш новый закрытый ключ.
Для ниндзя, наверное, достаточно. Для остальных, более подробно:
Шаг 1) Создайте новую пару ключей
В большинстве IDE есть возможность создать новую общедоступную/закрытую пару ключей. Кроме того, если у вас есть доступ к Linux-машине, вы можете создать свой собственный, используя:
ssh-keygen -t rsa -f john_git_rsa
Результатом будет набор частных (john_git_rsa) и общедоступных ( john_git_rsa.pub) ключей (также называемых keypair). На следующем шаге вам нужно скопировать открытый ключ в gitbox.
Шаг 2) Зарегистрируйте новый открытый ключ в gitbox
Вы можете узнать, как использовать git для администрирования gitolite-admin с быстрым поиском Google. Вкратце, шаги заключаются в следующем: (1) клонировать хранилище gitolite-admin; (2) добавить новый открытый ключ в каталог gitolite-admin/keydir/; и (3) отодвинуть изменения обратно в репозиторий gitolite-admin. Нажатие запускает gitbox для регистрации любых новых ключей в папке keydir/с авторизованным списком пользователей пользователя gitbox git.
Теперь ваш gitbox готов принять новые подключения от тех, кто аутентифицируется, как пользователь git, используя закрытый john_git_rsa.
Шаг 3) Убедитесь, что ваши подключения к gitbox используют пользователь git и новый закрытый ключ
Если вы подключаетесь к gitbox с помощью терминала, отредактируйте/создайте файл ~/.ssh/config, чтобы включить псевдоним, который предварительно сконфигурирует ваше соединение с gitbox. Псевдоним выглядит следующим образом:
Host gitbox
User git
Hostname yourgitbox.com
Port 22
IdentityFile ~/.ssh/john_git_rsa
Теперь выполнение команд типa > git clone gitbox: reponame.git или > git push gitbox: reponame.git гарантирует вам использование пользователя git и соответствующего закрытого ключа. Без этого псевдонима вам нужно будет сделать что-то вроде > git clone ssh://git @yourgitbox.com: 22/reponame.git и узнать ключ ssh для указания закрытого ключа для использования - не очень, (Примечание. Если вы подключаетесь без использования этого псевдонима, будет использоваться ваш ssh-ключ по умолчанию, и вы получите ошибки разрешения.)
ИЛИ, если вы используете IDE (NetBeans, Eclipse и т.д.):
Вам нужно найти настройки IDE SSH и настроить их вместо нового ключа, созданного вами (john_git_rsa), вместо стандартных ключей, сгенерированных во время его установки. Вы также должны убедиться в том, что URI вашего репозитория push настроен на что-то вроде:
ssh://[email protected]:22/reponame.git
чтобы имя пользователя было установлено git, а поле пароля пуст. Это гарантирует, что, когда вы подключаетесь к gitbox, чтобы ваша IDE предоставила секретный ключ, который вы только что установили, и пользователь git.
Теперь ваши толкания должны работать.