Ответ Кряка - хорошее начало, но у него есть две проблемы. Таким образом, я тоже попробую:
Сначала вы должны создать туннель от вашей локальной рабочей станции до порта SSH машины A. Это легко сделать из командной строки:
ssh -L 127.0.0.1:2200:A:22 B
(SSH к B и создать туннель от локального порта 127.0.0.1:2200 до удаленного порта A: 22)
Поскольку CVS не позволяет вам указывать порты при использовании :ext
протокола, эта простая командная строка не будет достаточно хороша. Вместо этого вам нужно создать или изменить ~/.ssh/config
файл:
Host B LocalForward 127.0.0.1:2200 A:22 Host tunnel2a Port 2200 HostName 127.0.0.1
Это две записи. Первый говорит ssh создать туннель всякий раз, когда вы переходите по ssh к B. Второй определяет новое имя хоста, tunnel2a
которое вы можете использовать для cvs.
Сначала откройте туннель с помощью ssh'ing для B:
ssh B
CVS теперь должен работать так:
cvs -d :ext:username@tunnel2a:/cvsroot/ checkout someModule