Назад | Перейти на главную страницу

как заставить работать связанный ssh ​​с git

Я пытаюсь обойти глупую проблему с брандмауэром. Я пытаюсь связать ssh-доступ с git через прокси-сервер ssh:

~ / git-цепочка:

#!/bin/bash
ssh hosticangetto ssh $*
# End

А потом:

$ export GIT_SSH=~/git-chain
$ git clone ssh://git@somerepostore.com/somerepo.git

E, [2012-02-07T12:50:21.434913 #28359] ERROR -- : git command not recognized
fatal: The remote end hung up unexpectedly

в мой сценарий передаются следующие аргументы:

git@somerepostore.com git-upload-pack 'somerepo.git'

Я проверил ключи от hosticangetto до хранилища репозитория git, и все в порядке.

Я не уверен, почему это не удается. Я делал подобные вещи с mercurial раньше с переключателем mercurial -e.

Добавьте эти строки в свой ~/.ssh/config (или создайте этот файл с этими строками, если он еще не существует):

Host somerepostore.com
    ProxyCommand ssh -W %h:%p hosticangetto

Затем отключите GIT_SSH.

Это сообщает ssh ssh, используя hosticangetto в качестве прокси. Это лучше, чем ваше решение, потому что в вашем решении пакеты дешифруются на hosticangetto, а затем повторно зашифровываются для somerepostore.com на удаленном хосте. Использование такой команды proxy означает, что пакеты для somerepostore.com на вашем локальном компьютере зашифрованы, и эти зашифрованные пакеты передаются через hosticangetto.

Думаю, с TTY нужно что-то делать.

Это не сработало:

ssh server1 ssh server2

Он просто там висит.

Кажется, это сработало:

ssh -t server1 ssh server2

Глядя на подробный вывод с помощью ssh -v server1 ssh server2 похоже, что первый / внешний ssh ​​завершается, и я попадаю на server1, но я не выполняю внутренний / второй ssh ​​для server2.