A resposta de Quack é um bom começo, mas tem dois problemas. Então eu vou tentar também:
Primeiro, você precisa criar um túnel da estação de trabalho local para a porta SSH da máquina A. Isso é feito facilmente a partir da linha de comando:
ssh -L 127.0.0.1:2200:A:22 B
(ssh para B e crie um túnel a partir da porta local 127.0.0.1:2200 até a porta remota A: 22)
Como o CVS não permite especificar portas ao usar o protocolo :ext
, essa linha de comando simples não será boa o suficiente. O que você precisa fazer é criar ou modificar seu arquivo ~/.ssh/config
:
Host B
LocalForward 127.0.0.1:2200 A:22
Host tunnel2a
Port 2200
HostName 127.0.0.1
Estas são duas entradas. O primeiro diz ao ssh para criar um túnel sempre que você for ssh para B. O segundo define o novo 'hostname' tunnel2a
que você pode usar para o cvs.
Primeiro, abra o túnel com ssh'ing para B:
ssh B
O CVS agora deve funcionar assim:
cvs -d :ext:username@tunnel2a:/cvsroot/ checkout someModule