Как включить частный rsa ключ ssh при доступе к git repo через ssh (gitosis)?

В этот момент у меня есть один git репо, добавленный через gitosis. Пособие, которое я использовал, http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

  1. Я могу клонировать его и вставить в него через ssh auth с закрытыми и открытыми ключами (на gentoo), но пользователи Windows, использующие Git Extensions, не могут. SSH-ключи помещаются в $HOME/.ssh, а ssh запрашивает пароль. Ни пароль, ни пароль (из закрытого ключа ssh) не совпадают.

  2. Redmine нужен для чистого репо, поэтому я клонировал репозиторий из gitosis на моей локальной машине и переместил его на сервер (redmine + git), а затем попытался синхронизировать, как показано здесь http://www.redmine.org/projects/redmine/wiki/HowTo_keep_in_sync_your_git_repository_for_redmine Но он снова запрашивает пароль! Конечно, я не сделал apache его собственными ssh-ключами для аутентификации gitosis =_= (Apache является владельцем redmine голого репо, потому что он обращается к нему через http auth)

Во всяком случае, вопрос заключается в том, как использовать закрытый ключ SSH из файла при доступе к Gitosis?

===

Частично решено!ssh-keygen -t rsa генерирует ключи, имена которых в точности являются id_rsa и id_rsa.pub. если вы бежите ssh -vvv gitosis@your-server.com вы должны увидеть что-то похожее на

debug1: Authentications that can continue: publickey,keyboard-interactive
…
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: user@domain-user
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,keyboard-interactive
debug1: Trying private key: /home/user/.ssh/id_rsa
debug3: no such identity: /home/user/.ssh/id_rsa
debug1: Trying private key: /home/user/.ssh/id_dsa
debug3: no such identity: /home/user/.ssh/id_dsa
debug1: Trying private key: /home/user/.ssh/id_ecdsa
debug3: no such identity: /home/user/.ssh/id_ecdsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup keyboard-interactive

Итак, клиент ssh хочет точно именованные файлы или переключится на следующий метод аутентификации (пароль). Теперь я переименовал ключи на моей домашней машине и:

user@home ~ $ git clone ssh://git@your-gitosis-server/reponame.git
Cloning into reponame...
Enter passphrase for key '/home/user/.ssh/id_rsa':

Ура, он просит пароль! Кстати, пользователи ШИИДОШС ™ до сих пор имеют проблемы с десятками сгенерированных ключей.

Upd

Если вы используете OpenSSH, то в ~/.ssh вы можете создать файл с именем 'config' и поместить туда что-то вроде этого:

Host mygitosisserver.com
IdentityFile ~/.ssh/private-key-for-mygitosisserver-com

2 ответа

Решение

Пользователи Windows также должны иметь возможность клонировать (с помощью ssh), если они определили переменную среды%HOME%.
HOME не определен по умолчанию.
Он может ссылаться на любой каталог, который они хотят (обычно один занимает то же, что и %HOMEPATH%)


tijagi сообщает:

Проблема с пользователями Windows была решена путем строгого следования руководству по генерации ключей с помощью puttygen.
новая пара ключей в окнах работает нормально

Настройка git push с SSH

Генерация ключа SSH с помощью ssh-keygen

ssh-keygen -t rsa -C "your_github_email@example.com"

Настройка Github SSH-соединения

1. Скопируйте ssh с локальной машины

cat /home/ubuntu/.ssh/github_rsa.pub

2. Перейдите на страницу настроек учетной записи github.

3. Нажмите на новый ключ SSH

4. Добавьте заголовок и вставьте скопированный ключ SSH из локального

5. Тест SSH

ssh -T git@github.com

6. Обновите удаленный URL -адрес хранилища, указав URL -адрес ssh вместо https.

  • Скопируйте ssh url из хранилища

  • Скопируйте клон с помощью ssh URL - Часы Используйте SSH, как на первом скриншоте

    git источник удаленного набора URL git@github.com: JinnaBalu / GitCheatSheet.git

7. Пробный пуш с помощью ssh

 git add --all

 git commit -am "testing the changes"

 git push -u origin master
Другие вопросы по тегам