Как включить частный rsa ключ ssh при доступе к git repo через ssh (gitosis)?
В этот момент у меня есть один git репо, добавленный через gitosis. Пособие, которое я использовал, http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way
Я могу клонировать его и вставить в него через ssh auth с закрытыми и открытыми ключами (на gentoo), но пользователи Windows, использующие Git Extensions, не могут. SSH-ключи помещаются в $HOME/.ssh, а ssh запрашивает пароль. Ни пароль, ни пароль (из закрытого ключа ssh) не совпадают.
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