При gitolite
все ваши ssh-соединения выполняются с учетной записью, используемой для установки gitolite
.
В вашем случае: gitolite
.
Однако вы можете указать другой открытый ключ, чтобы указать gitolite
для аутентификации вас против другого пользователя.
Сеанс ssh будет по-прежнему выполняться как gitolite
.
Но имя, переданное сценарию gitolite
, будетtestid
(потому что открытый ключ был зарегистрирован gitolite
в его ~/.ssh/authorized_keys
как 'testid
')
Так что используйте файл ~testid/.ssh/config
, в котором вы упомянули правильный параметр:
Host gitolitesrv
Hostname dev.remoteserver.com
User gitolite
IdentityFile /path/to/tesitd
Обратите внимание, что /path/to/
должен содержать ваш закрытый ключ testid
и ваш открытый ключ testid.pub
.
На данный момент их имя не имеет значения (может быть xxx
и xxx.pub
)
Что было важным было имя открытого ключа, хранящееся в gitolite-admin/keydir/testid.pub
(поскольку имя файла используется для идентификатора, записанного в принудительной команде authorized_keys
строка)
И тогда этот git clone
должен работать:
git clone gitolitesrv:aproject.git
OP JinbomHeo упоминает о трудностях:
Клонирование в 'aproject' ... R доступ для aproject DENIED to gitolite
(Или на данном пути не может быть хранилища.Правильно ли вы написали?) Смертельно: удаленный конец неожиданно повесил трубку*
И файл gitolite.conf
включает в себя следующее (нажатие git):
repo aproject RW + = testid
Наконец-то я нашел причину.
При генерации ssh-ключа с помощью ssh-keygen я набрал пароль .Вот в чем проблема.
Итак, я попробовал keygen без пароля, и он работает ~.Я не знаю, почему пароль не должен быть добавлен, когда я делаю ключ.В любом случае, это работает хорошо
Я могу подтвердить, что всегда использую ключи без пароля .
Если вы хотите защитить свои ключи парольной фразой, см.« приложение 1: демон ssh запрашивает пароль »
убедитесь, что вас просят ввести пароль, а не пароль.
Не путайте и не ошибайтесьподсказка с вводом ключевой фразы для ключа '/home/sitaram/.ssh/id_rsa
': для запроса пароля от удаленного сервера!
Когда вы создаете ssh keypair
с помощью ssh-keygen
, у вас есть возможность защитить его парольной фразой.
Когда вы впоследствии используете это keypair
для доступа к удаленному хосту, вашему локальному клиенту ssh
необходимо разблокировать соответствующий закрытый ключ, и ssh
, вероятно, запросит пароль, который вы установили при созданииkeypair
.
У вас есть два варианта, чтобы избежать этого запроса каждый раз, когда вы пытаетесь использовать закрытый ключ.
- Первое - создать пары ключей без ключевой фразы (просто нажмите Enter, когда будет предложено ввести одну).
Обязательно добавьте ключевую фразу позже, когда все заработает, используя ssh-keygen -p
. - Второй - использовать
ssh-agent
(или keychain
, который в свою очередь использует ssh-agent
) или что-то подобное для управления вашими ключами.
Кроме обсуждения еще одной потенциальной проблемы с ssh-agent
(см. « приложение 3: клиент ssh может не предлагать правильный ключ »), дальнейшее обсуждение ssh-agent/keychain
выходит за рамки этого документа.