2009-09-30 3 views
7

Итак, у меня, похоже, есть некоторые проблемы с настройкой msysgit. Я могу подключиться через шпаклевку к моей директории SSH с помощьюПроблемы с msysgit

SSH: // пользователь @ хост: порт

И у меня есть правильные ключи. Я также могу сделать это с помощью палить через

палить -Р PORT пользователь @ хост -i /path/to/private_key.ppk

При попытке запустить (через TortiseGIT) или через мерзавец Баш

мерзавец клон SSH: // пользователь @ хост: порт/путь/к/myapp.git

Я просто продолжаю получать ошибки

Инициализированный пустой репозиторий Git в D: /Git/myapp.git
Предупреждение: вы, похоже, клонировали пустой репозиторий.
со смертельным исходом: Удалённая повесил трубку неожиданно

Я проверил бот /Git/setup.ini и TortiseGIT и оба используют

C: \ Program Files \ TortoiseSVN \ Bin \ TortoisePlink.exe

Кто-нибудь знает, как я могу исправить эту проблему, так как это сводит меня с ума!

ответ

1

Вам необходимо установить Pageant и добавить в него ключ.

Также двойная проверка, что переменная GIT_SSH среды настроен на использование палить

+0

эй спасибо за ответ - да, у меня есть театрализованный ход и ключ загружаются в него. переменная среды GIT_SSH (через /Git/setup.ini) устанавливается на путь, как указано выше. – 2009-09-30 13:04:20

+0

даже когда я запускаю git push ssh: // user @ host: port/path/to/myapp.git - я просто получаю «фатальный: удаленный конец неожиданно повесил трубку» – 2009-09-30 13:18:09

+0

есть ли способ отладки в «GIT»? т. е. след или что-то еще? как получить это на выходе? – 2009-09-30 13:24:13

0

Есть ли что-нибудь (то есть по крайней мере один фиксация) в удаленном репозитории?

мерзавец говорит: «предупреждение: Похоже, вы клонировали пустой репозиторий»

и когда вы хотите, чтобы нажать на пустой удаленный репозиторий, вы должны использовать:

git push URL master 
+0

спасибо за ответ. да, я не уверен, что это проблема, потому что даже когда я нажимаю, я все еще получаю ошибку. как я могу «отлаживать» git или plink? у тебя есть идеи? – 2009-09-30 14:37:08

+0

Э-э ... Вы не уверены, что это проблема? Я думал, что вы не можете нажать на это репо? (см. комментарий к ответу nolim1t) – 2009-09-30 14:48:01

+0

Вы можете попробовать установить GIT_TRACE = 1 и 'git ls-remote Your-URL' – 2009-09-30 14:49:56

0

Вы пробовали подключение от Git-Bash с помощью ssh user @ host: port? Подключается ли он напрямую или запрашивается пароль?

Порт необходим только в том случае, если вы используете нестандартный порт для ssh, иначе он будет по умолчанию 22. Это одна вещь из Putty, но убедитесь, что вы можете подключиться к git bash, потому что у нее обычно будет свой собственный магазин ключей в директории .ssh с вашего каталога пользователя. Если вы не можете получить, чтобы работать с Git-Баш вам необходимо исправить ключ или отладки, где проблема, попробуйте указать ключ, используя

SSH -i пользователь файл_ключа @ хост: порт

если что Безразлично Не работайте или запрашиваете пароль на удаленном компьютере, это означает, что обмен ключами не работает должным образом.Таким образом, вам нужно пройти проверку, что ключи настроены правильно в отношении среды Git-Bash. В частности, убедитесь, что вы экспортировали ключ RSA и не просто используете ключ ppk с Git-Bash. Я не верю, что это поддерживается. Я не использую Tortoise-Git, поэтому я не могу с этим поделать, но я регулярно использую Git Bash.

9

Вот немного из списка проверки:

  1. Включен SSH на сервере вы пытаетесь подключиться?
  2. Установлен ли GIT на сервер?
  3. У вас есть установка репозитория Git на сервере?
  4. Имеет ли репозиторий правильные разрешения и разрешено использование sharedrepository в конфигурации на сервере?
  5. У вас есть ключи ssh в нужном месте для GIT?

    Предложения:

1: Так как вы можете подключить с помощью шпаклевки, выглядит как SSH настроен нормально.

2: Используйте шпатлевку и подключитесь к серверу. Введите номер git --version Получите ответный ответ? Если нет, вам нужно будет установить его на сервер.

3: Попробуйте настроить новый репозиторий на сервере. Предполагая, что сервер a * nix style использует putty и подключается к серверу и создает новый репозиторий, используя следующие команды, предполагая, что у вас есть каталог/home/source_code. Эхо-линия просто делает файл с небольшим количеством текста, поэтому у нас есть с чего начать.

cd /home/source_code 
mkdir test_repo 
cd /home/source_code/test_repo 
echo "first file" > t.txt 
git init 
git add . 
git commit -m "Initial Import" 

Итак, теперь у нас есть репозиторий с одним файлом t.txt. Как правило, вы никогда не должны вставлять репозиторий, содержащий изменения в рабочей копии. Цель создания репозитория на сервере - это то, что люди могут постоянно в него входить. Мы делаем «голый» клон, который является только базой данных git, таким образом, нет возможности каких-либо изменений в рабочей копии. Именно этот «голый» клон мы будем использовать в качестве центрального репозитория git.

cd /home/source_code 
git clone --bare test_repo/ test_repo.git 

Теперь вы можете избавиться от временного репозитория, который мы создали.

cd /home/source_code/ 
rm -rf test_repo 

На локальном компьютере попытаться клонировать снова

git clone ssh://[email protected]:port/home/source_code/test_repo.git 

4: Права доступа: Это не должно вызвать проблемы с клонированием, извлечение или вытягивать, если вы не выбрали место для репозитория то не имеет доступ для чтения. Если вы получаете разрешение отказано ошибка при нажатии тогда обратитесь к Permissions correction

5: Настройка открытый/закрытый ключ для GIT:

  1. Подключение к серверу с замазкой
  2. Установка разрешений на ваш ~/.ssh: chmod 700 .ssh
  3. Установите разрешения на свой ~ /.SSH/authorized_keys: chmod 600 authorized_keys
  4. Генерировать ключи ssh-keygen -t dsa
  5. Accept имена файлов, которые он желает использовать
  6. Не вводите ключевую фразу (только ввод). Вы захотите повторить это с помощью кодовой фразы позже.
  7. добавить ключ паба в файл authorized_keys: cat id_dsa.pub >> .ssh/authorized_keys
  8. редактировать/и т.д./SSH/ssh_config и добавьте строку PubkeyAuthentication yes
  9. перезапустить SSH демон sudo /etc/init.d/ssh restart
  10. Copy id_dsa и id_dsa.pub с сервера на локальный жесткий диск (используйте winscp или sftp или какой-нибудь такой инструмент) c: \ users \ userName \ .ssh directory (это для перспективы, расположение будет немного отличаться для других версий окон)
  11. Установите черепаху git, чтобы указать на C: \ Program Files \ Git \ bin \ ssh.exe (не замазка)

Как командная строка git, так и черепаха git должны быть настроены на работу. Повторите попытку клонирования на вашей локальной машине.

git clone ssh://[email protected]:port/home/source_code/test_repo.git 

Теперь вы можете пойти и повторить создание ключей с помощью парольной фразы ....