sexta-feira, 8 de outubro de 2010
quinta-feira, 30 de setembro de 2010
Acessando arquivos via ssh graficamente (com túnel ssh)
Muitas pessoas utilizam a opção de montar um diretório de um host remoto através de ssh. No ubuntu, o nautilus (navegador de arquivos) permite que isso seja feito de maneira gráfica através do sftp.
O problema é caso você enfrente a mesma situação descrita no post SSH sobre SSH . Para quem não leu o post, um resumo: você precisa autenticar em um host com acesso externo (exthostA) para acessar um segundo host (inthostB) que só é visível na rede interna.
A pergunta é como fazer um processo equivalente para conseguir acessar os arquivos do host "escondido" (inthostB) via nautilus, porém utilizando o intermediário (exthostA).
Bom, adiantando, não é uma solução tão simples e direta quanto a do post anterior.
Inicialmente precisamos criar um redirecionador (túnel):
ssh -L2222:inthostB:22 userA@exthostA
Esse comando faz com que todas as conexões ao servidor local (a máquina que você está usando) que utilizem a porta 2222 sejam redirecionadas para o servidor remoto inthostB através do exthostA. É esse "através" que permite enxergar o host "escondido" diretamente. :)
Por fim, agora é só utilizar a conexão ssh via nautilus. No Ubuntu:
Locais->Conectar ao servidor...Tipo de serviço: SSHServidor: localhostPorta: 2222 (Atenção é 2222 e não apenas 22, não confundir )Nome do usuário: userB (o usuário do host interno inthostB)Nome do marcador: inthostB
Aparentemente você tentará se conectar a sua própria máquina, mas na verdade acontecerá um redirecionamento para o host desejado.
A porta utilizada também poderia ser outra, por exemplo 2223. Bastaria colocar a opção "-L2223" e conectar na porta 2223
Referência
SSH sobre SSH
Algumas vezes você precisa autenticar em um host com acesso externo (exthost1) para acessar um segundo host (inthost2) que só é visível na rede interna.
Normalmente o que é feito é fazer um ssh para o host externo:
ssh user1@exthost1
E após autenticado, fazer outro ssh para o host interno:
ssh user2@inthost2
Como na realidade você não quer realmente fazer nada no host externo além de ter acesso ao interno, esse comando pode ser realizado de uma única vez:
ssh user1@exthost1 -t ssh user2@inthost2
Perceba que a presença do argumento -t é primordial, do contrário o comando não funcionará.
A vantagem é você não precisar cair em um terminal intermediário para redigitar o comando ssh.
Assinar:
Postagens (Atom)