Может ли git работать через переадресацию портов ssh? - PullRequest
9 голосов
/ 09 апреля 2009

Моя ситуация в том, что я могу ssh перейти на ComputerB (репозитории), где размещены git репозитории Но мой местный соединение слишком медленное, чтобы клонировать код. И я могу SSH к другой машине (ComputerA) что быстрее, поэтому я хочу клонировать код через ComputerA.

Вот что я сделал:

           ssh tunnel                           ssh tunnel
MyComputer ----------> ComputerA (I can ssh to) ----------> ComputerB (where the Code repos is and I can ssh to but too slow)

Использование такой команды:

ssh -L1234:ComputerA_ip:22 Code_repos_ip

Тогда:

git clone git+ssh//localhost/repos local_repos (how can I assign the port 1234?)

Если это не сработает, что еще я могу сделать?

Ответы [ 4 ]

14 голосов
/ 09 апреля 2009

Каким образом два соединения сделают ваше соединение быстрее?

Во всяком случае, вы должны быть в состоянии сделать:

git clone git+ssh://localhost:1234/repos local_repos
8 голосов
/ 09 апреля 2009

Кроме того, вы можете попробовать ввести номер порта в ~/.ssh/config:

Host ComputerA
HostName localhost
Port 1234

А затем используйте ComputerA в команде git clone: ​​

git clone git+ssh://ComputerA/repos local_repos
1 голос
/ 09 апреля 2009

Проверьте командные файлы для SSH. Вы можете автоматически выполнить команду при входе через SSH. Это указано в файле author_keys. Итак, на компьютере A у вас будет командный файл, который автоматически подключается по SSH к компьютеру B. Затем, когда вы подключитесь к компьютеру A, он автоматически сделает это с компьютером B. К вашему компьютеру он напрямую подключен к компьютеру B. Вы даже можете использовать сжатый туннель.

0 голосов
/ 09 апреля 2009

Сначала клонируйте на ComputerA, затем клонируйте с ComputerA на ComputerB. Вам, однако, придется подключиться к ComputerA, чтобы получить новый материал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...