Вот немного из списка проверки:
- Включен SSH на сервере вы пытаетесь подключиться?
- Установлен ли GIT на сервер?
- У вас есть установка репозитория Git на сервере?
- Имеет ли репозиторий правильные разрешения и разрешено использование sharedrepository в конфигурации на сервере?
У вас есть ключи 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:
- Подключение к серверу с замазкой
- Установка разрешений на ваш ~/.ssh:
chmod 700 .ssh
- Установите разрешения на свой ~ /.SSH/authorized_keys:
chmod 600 authorized_keys
- Генерировать ключи
ssh-keygen -t dsa
- Accept имена файлов, которые он желает использовать
- Не вводите ключевую фразу (только ввод). Вы захотите повторить это с помощью кодовой фразы позже.
- добавить ключ паба в файл authorized_keys:
cat id_dsa.pub >> .ssh/authorized_keys
- редактировать/и т.д./SSH/ssh_config и добавьте строку
PubkeyAuthentication yes
- перезапустить SSH демон
sudo /etc/init.d/ssh restart
- Copy
id_dsa
и id_dsa.pub
с сервера на локальный жесткий диск (используйте winscp или sftp или какой-нибудь такой инструмент) c: \ users \ userName \ .ssh directory (это для перспективы, расположение будет немного отличаться для других версий окон)
- Установите черепаху git, чтобы указать на C: \ Program Files \ Git \ bin \ ssh.exe (не замазка)
Как командная строка git, так и черепаха git должны быть настроены на работу. Повторите попытку клонирования на вашей локальной машине.
git clone ssh://[email protected]:port/home/source_code/test_repo.git
Теперь вы можете пойти и повторить создание ключей с помощью парольной фразы ....
эй спасибо за ответ - да, у меня есть театрализованный ход и ключ загружаются в него. переменная среды GIT_SSH (через /Git/setup.ini) устанавливается на путь, как указано выше. – 2009-09-30 13:04:20
даже когда я запускаю git push ssh: // user @ host: port/path/to/myapp.git - я просто получаю «фатальный: удаленный конец неожиданно повесил трубку» – 2009-09-30 13:18:09
есть ли способ отладки в «GIT»? т. е. след или что-то еще? как получить это на выходе? – 2009-09-30 13:24:13