Como posso montar um diretório sshfs remoto de um servidor publicamente inacessível na minha máquina cliente inacessível?

2

Esta é uma extensão da pergunta por @Andrei

How to mount remote SSHFS via intermediate machine? Tunneling?

Estou na mesma situação que quero montar um diretório remoto, mas a diferença é que ambas as máquinas A e B não são publicamente expostas na Internet. A é minha estação de trabalho local.

Então, eu não posso nem ssh de A -> B , nem B -> A .

O que eu faço regularmente é estabelecer uma conexão reversa de B -> C , onde C é um servidor virtual alugado (VPS). Um script que faz esta conexão (e reconecta em caso de perda de conexão) é iniciado através da chave @reboot de cron .

user@pcB $ ssh -R 2048:localhost:22 -p<port> user@serverC

Então, para ir de A -> B , tomo a rota intermediária A -> C -> B .

user@pcA $ ssh serverC
user@serverC $ ssh -p 2048 user@localhost
user@pcB $ # okay, logged in.

Estou procurando uma maneira de montar o diretório pcB:/home/user on pcA .

Como faço para conectar-se a um pc através de outro pc usando ssh é semelhante, mas as soluções fornecidas não funcionam neste cenário: o mapa de conexão no meu caso é A -> C <- B não A -> C -> B .

    
por Sebastian 24.05.2013 / 10:53

1 resposta

5

Isso foi mais fácil do que eu pensava!

Tudo o que precisamos fazer é vincular a porta 2048 de serverC a uma porta em pcA . Para simplificar, uso o mesmo número de porta 2048 :

user@pcA $ ssh -L 2048:localhost:2048 user@serverC

É necessário manter esta janela do terminal aberta.

Em seguida, montar o diretório pcB:/home/user localmente em pcA se parece com isso:

sshfs -o port=2048 user@localhost:/home/user/ /mnt/pcB

Bom efeito colateral: Isso significa que você também pode usar conexões eficientes do servidor X, por exemplo, freeNX ou vnc para recuperar uma exibição de pcB . Basta conectar-se a localhost:2048 e usar as credenciais corretas (nome de usuário / senha) para a máquina pcB !

Se você não quiser manter um terminal aberto para a conexão, use:

ssh -NfL 2048:localhost:2048 user@serverC

Observe que isso pode violar a política de segurança organizacional de seus funcionários / empregadores, por isso, certifique-se de obter as permissões apropriadas.

    
por 24.05.2013 / 10:53