Duas dicas de SSH

Publicado por Anthony Collucci em 01/08/2009

[ Hits: 11.596 ]

Blog: http://www.amcollucci.com.br

 


Duas dicas de SSH



Conexão SSH sem senha

Método 1:

Esse procedimento só funciona caso os dois servidores tenham o mesmo usuário que irá se conectar pelo SSH.

Com o servidor SSH instalado na máquina em que se quer conectar, logado com a conta de usuário com a qual se quer realizar a conexão SSH, gere a chave RSA com o comando:

ssh-keygen -t rsa

Quando perguntado para entrar com uma "passphrase", apenas tecle "Enter" duas vezes para que fique em branco, caso contrário esta frase precisará ser digitada posteriormente.

Com isso, no diretório .ssh dentro da HOME do usuário com que a chave foi criada serão criados dois arquivos, id_rsa e id_rsa.pub. Copie o arquivo id_rsa.pub para o computador pelo qual se quer conectar via SSH sem a senha.

scp id_rsa.pub [user]@[server_ssh]:

Depois de copiado acesse o diretório para o qual o arquivo foi copiado e use o comando:

cat id_rsa.pub >> [home_do_usuário]/.ssh/authorized_keys2

Isso acrescentará a entrada da chave no arquivo de chaves autorizadas. Caso esse arquivo authorized_keys2 não exista, basta criá-lo na pasta .ssh da HOME do usuário. Após isso basta digitar:

ssh [user]@[server_ssh]

A conexão será realizada sem necessidade de senha.

Método 2:

ssh-keygen -t rsa
$ ssh-copy-id -i [diretório_chave_publica] [user]@[ip_cliente]:


Navegação SSH

Para utilizar qualquer navegador para realizar a conexão através de um túnel SSH é necessário ter uma conta para acesso SSH em algum servidor que considere seguro. A conta não precisa de nenhum privilégio especial. No cliente utilizar algum programa para conexão SSH e utilizar o seguinte comando:

ssh -D [porta] [user]@[server_ssh]

Configurar o navegador para usar SOMENTE proxy socks, como localhost porta=[porta].

A partir de agora toda a conexão do navegador primeiramente passará pelo servidor SSH antes de ser enviada ao destino e vice-versa.

ssh -L 110:ebrandi.myip.org:110 edson@ebrandi.myip.org

Após me autenticar, posso baixar as minhas mensagens de e-mail via POP3 do servidor ebrandi.myip.org através de um canal seguro, simplesmente setando como meu POP3 server 127.0.0.1:110 no meu cliente POP3. Enquanto eu permanecer conectado o túnel estará funcionando.

Por outro lado, se eu executar o comando:

ssh -R 110:ebrandi.myip.org:110 edson@ebrandi.myip.org

Vou fazer com que o servidor ebrandi.myip.org, que não tem serviço na porta 110, redirecione para a porta 110 do meu desktop, via um canal seguro, todas as requisições que chegarem para ele na porta 110. Acho que agora melhorou, não?

Para utilizar o SSH em conjunto com o VNC, utilizamos a opção "-L", que permite redirecionar uma determinada porta local para uma porta no servidor, criando o túnel. A sintaxe do SSH, neste caso, seria:

ssh -L [porta_local]:[servidor:porta_do_servidor servidor]

Parece complicado, mas vai melhorar... :)

O servidor VNC escuta na porta 5900 + o número do display (5901, 5902, 5903, etc). Note que a porta é diferente do servidor Java, acessível utilizando o browser, que utiliza as portas de 5800 em diante.

Se você vai acessar o display 1 (porta 5901), na máquina 220.132.54.78, precisamos orientar o SSH a redirecionar esta porta para uma porta acessível pelo cliente VNC (a própria porta 5901, ou qualquer outra) no PC local. Para isso, é necessário que o servidor SSH esteja aberto no servidor remoto e que você tenha uma conta nele. O comando seria:

ssh -f -N -L5901:220.132.54.78:5901 -l login 220.132.54.78

Substitua o "login" pela sua conta de usuário na máquina remota. O SSH pedirá a senha (ou passphrase) e pronto, o túnel estará criado.

Tudo o que você precisa fazer agora é abrir o cliente VNC e acessar o endereço "127.0.0.1:1". Isso fará com que o cliente acesse a porta 5901 na máquina local, que por sua vez será redirecionada (através do túnel) para a porta 5901 do servidor remoto. Você usará o VNC da mesma forma, mas desta vez usando um túnel seguro.

Se por acaso a porta 5901 local já estiver em uso, você pode simplesmente criar o túnel apontando para outra porta da sua máquina. Se você fosse acessar o display 4 (porta 5904) no servidor 192.168.0.4, redirecionando-o para a porta 5905 (display 5) da máquina local, logando-se usando o usuário "tux", o comando seria:

ssh -f -N -L5905:192.168.0.4:5904 -l tux 192.168.0.4

Nesse caso você acessaria o endereço "127.0.0.1:5" no cliente VNC, que faz com que ele se conecte na porta 5905.

Flws
Anthony Collucci

Outras dicas deste autor

TCP/IP para sistemas embarcados

Roteiro de instalação e configuração de um Servidor Debian

Acelerando o apt-get ou similares

Picocom - Gravando dados enviados via USB pelo Arduino

O comando grep

Leitura recomendada

Ativando NumLock automaticamente do login do Ubuntu

Recuperando o lilo usando o Kurumin

Conecte seu celular Nokia N70 ao Ubuntu

Copiando CD de músicas no Slackware pelo shell

Novo Greybird para Xfce

  

Comentários
[1] Comentário enviado por andre.vmatos em 01/08/2009 - 14:20h

Muito boa a dica. Simples e direta. Parabéns, tah nos favoritos. Abçss

[2] Comentário enviado por acollucci em 03/08/2009 - 16:16h

Opa Vmatos obrigado,

So um detalhe, retiraram da Dica, mas é importante, as dicas acima nao sao de minha autoria e foram enviadas para mim, sem autor conhecido.
Mas achei interessante e resolvi divulgar assim mesmo.

Flws

[3] Comentário enviado por landex em 10/06/2010 - 10:26h

Legal esta dica.



Contribuir com comentário