Ошибка аутентификации в Windows XP с git и tortoisegit

Моя аутентификация продолжает давать сбой. Я создал свои ключи SSH, а открытый ключ был импортирован локальным администратором git, но мне все еще предлагается ввести пароль:

git.exe clone  --progress -v  "git@repo:project.git" "C:\web\project"  
Cloning into C:\web\project...  
git@repo's password:  
fatal: The remote end hung up unexpectedly
  • Мои ключи SSH не имеют парольной фразы и живут под «C:\Documents and Settings\username\.ssh», и я также скопировал их в «C:\Documents and Settings\username\ssh» (без предшествующей точки) просто для верности.
  • На экране переменных среды Windows для системной переменной HOME задан правильный каталог для моего пользователя.

person Bri    schedule 15.03.2011    source источник


Ответы (1)


Что возвращает ssh -vvv git@repo?

Пока этот ssh-запрос не работает, никакая операция git не будет работать с сервером git@repo.
И если ssh сообщает, что пытается предложить открытый ключ, вы должны перепроверить, правильно ли он был добавлен в файл ~git/.ssh/authorized_keys на сервере репо.

Вот выдержка из примера сеанса ssh, который работает:

debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug3: start over, passed a different list publickey,password,keyboard-interactive
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /p/.ssh/mypubkey
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug2: input_userauth_pk_ok: fp f8:d9:7...:cf

debug3: sign_and_send_pubkey
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug1: Entering interactive session.

Два комментария:

  • Моя ссылка %HOME% не %HOMEDIR%, а пользовательский диск (p:\), это действующее местное соглашение, которое может не относиться к вам.
  • имена моих открытых/закрытых ключей не соответствуют стандарту по умолчанию (id_rsa.pub/id_rsa)

Я добавил файл config в каталог %HOME%\.ssh, чтобы явно назвать файл открытого ключа:

host gitrepo
     user git
     hostname repo
     identityfile ~/.ssh/mypubkey

Таким образом, я могу просто ввести: ssh gitrepo, и ssh будет знать, какого пользователя, имя хоста и точный полный путь открытого ключа использовать.

person VonC    schedule 16.03.2011