2010-03-28 5 views
6

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

ssh [email protected]_SERVER -L9418:GIT_SERVER:9418 

и в другом терминале я бег

git clone git://localhost:repositories/project.git 

Но я получаю следующая ошибка:

Initialized empty Git repository in /Users/aboxer/tmp/glucosia/.git/

fatal: Unable to look up localhost (port repositories) (nodename nor servname provided, or not known)

Спасибо!

+0

Это более подходит для serverfault. – Ikke

+1

@Ikke: Фактически, ответ (я считаю) полностью связан с синтаксисом git url, и stackoverflow был хорошо установлен как место для вопросов о том, как использовать git. – Cascabel

+0

Я понял это позже. Я думал, что это о том, как настроить брандмауэр. – Ikke

ответ

6

Я уверен, что ваша проблема (или, по крайней мере, один вызывает конкретную ошибку) здесь:

git clone git://localhost:repositories/project.git 

Если вы посмотрите на list of url notations в человеке мерзавца толчке вы увидите соответствующий пример:

git://host.xz[:port]/path/to/repo.git/ 

с толстой кишкой, вы используете «хранилища» в качестве имени порта, и мерзавца (по понятным причинам) имеет проблемы с подключением к порту хранилищам на локальном хосте! Что вы ищете является:

git://localhost/path/to/repositories/project.git 

или, возможно,

git://localhost/~user/repositories/project.git 

Edit:

я, вероятно, следовало бы сказал, что это с самого начала, но я не могу на самом деле думать о причине вам нужно будет использовать SSH-туннелирование с git. Его транспортным протоколом по умолчанию является ssh; git-протокол действительно доступен только для того, чтобы публичные репозитории были получены из-за отсутствия учетной записи. Если вы можете SSH в машину, где находится хранилище, вы можете просто принести через SSH:

git clone ssh://[[email protected]]host.xz/path/to/repo.git 
git clone ssh://[[email protected]]host.xz/~/path/to/repo.git 
git clone ssh://[[email protected]]host.xz/~user/path/to/repo.git 
+0

да, самое смешное, что когда я нахожусь не за брандмауэром, командной мерзавец клон мерзавца: // GIT_SERVER: Хранилища/project.git работает отлично, но мерзавец клон мерзавец: // GIT_SERVER/Хранилища/проект .git не – Jacko

+0

@Jacko: Я полагаю, что вы имеете в виду, что удаление двоеточия здесь не помогает? Кроме того, есть ли причина, по которой вы не можете просто использовать 'git clone ssh: // GIT_SERVER/path/to/repositories/project.git'? Git по умолчанию транспортный протокол ssh ... – Cascabel

+0

Спасибо, Jefromi. Извлечение через ssh, как описано в вашем редактировании, отлично работает. – Jacko

0

Короткий вариант ответа Влада Zloteanu в:

Настройка туннеля:

ssh ServerWithSSHAccessAddress -L 2000:GitServerAddress:22 -N , & 

Clone репо

git clone ssh://[email protected]:2000/my_repo.git 
0

Вот шаги, которые работали для меня. Моя система находится за брандмауэром компании и ее домен:

  • Первого НПМ должен быть установлен
  • Скрипач должен быть в рабочем режиме, а также.Скрипач должен быть запущен с 'автоматической проверкой подлинности' в разделе 'Правил' включен
  • Установки Git с помощью команды:

НОЙ установки мерзавца

  • протокола обновления от мерзавца до https:

git config --global url. https://github.com/.insteadOf git: //github.com/

Смежные вопросы