Как включить частный rsa ключ ssh при доступе к git repo через ssh (gitosis)? - PullRequest
5 голосов
/ 19 июля 2011

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

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

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

В любом случае вопросКак использовать закрытый ключ 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':

Ура, он запрашивает кодовую фразу !Кстати, у пользователей ШИИDOШS ™ по-прежнему возникают проблемы с десятками сгенерированных ключей.

Upd

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

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

Ответы [ 2 ]

4 голосов
/ 19 июля 2011

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


Пользователь OP685107 сообщает:

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

0 голосов
/ 01 ноября 2018

Настройка 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

  • Скопируйте URL-адрес ssh из хранилища

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

    git origin set-url origin git@github.com: JinnaBalu / GitCheatSheet.git

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

 git add --all

 git commit -am "testing the changes"

 git push -u origin master
...