Как включить ssh закрытый ключ rsa при доступе к git-репо через 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 bare репо, потому что он получает доступ к нему через 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':

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

Upd

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

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

5
задан tijagi 7 April 2012 в 20:41
поделиться