Я пытаюсь обойти глупую проблему с брандмауэром. Я пытаюсь связать 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.