Seja Feliz com SSH+Screen …
No dia-a-dia de um Administrador de Sistemas Unix em Geral é constante ter que abrir diversos terminais e logar em diferentes servidores ao mesmo tempo e ter que repetir este processo muitas vezes ao dia e com diferentes senhas e etc …
Este processo é desgastante e não agrega nada ao processo da Administração e Segurança, somente nos causa perda de tempo.
Uma saída excelente e que a partir do momento que adotei vi o quanto isto agregou no meu trabalho e diminui o retrabalho ao digitar senhas e encher minha tela de Teminais.
Vamos lá:
Em primeiro lugar instale o Screen em sua máquina, se não conhece dê uma lida no Post do Aurélio sobre o uso do Screen (não vou entrar neste ponto) mas depois de começar a usá-lo simplesmente eu viciei!!
O que faz o Screen basicamente? Ele te possibilita abrir diversos terminais virtuais (janelas) dentro do mesmo terminal e alternar entre eles simplesmente digitando crtl+a. Isto é a maior mão-na-roda, pois de um mesmo terminal você pode administrar todos os seus servidores, abrindo terminais virtuais e utilizando cada um para conectar a um servidor diferente.
Onde queremos chegar? O nosso objetivo é utilizar o Screen para maximizar o nosso uso dos Teminais e utilizar alguns recursos mais avançados do SSH para não precisar digitar a senha em cada servidor que formos logar (vamos digitar somente uma vez).
Depois de instalado o screen e você já se viciou nele (como eu), faça o seguinte:
1) Vamos criar sua chave pública e privada pois utilizaremos assinatura digital (por chave pública e privada) para autenticarmos nos servidores. Utilize o comando abaixo para criar sua chaves usando Criptografia DSA:
Zen-La:~ Godoy$ ssh-keygen -t dsa
O sistema irá lhe pedir uma “passphrase” que nada mais é do que uma senha que protegerá sua chave privada. Coloque algo dificil e grande!!
Depois disso o sistema irá gerar uma chave pública e privada e gravará em $HOME/.ssh/id_dsa (privada) e $HOME/.ssh/id_dsa.pub (publica).
Agora será necessário copiar a sua chave pública (id_dsa.pub) para cada servidor que for acessar. Utilize o comando abaixo:
Zen-La:~ Godoy$ cat ~/.ssh/id_dsa.pub | ssh nome-do-user@IP-da-outra-maquina `cat - >> ~/.ssh/authorized_keys`
2) Abra um terminal normalmente e digite como primeiro comando:
Zen-La:~ Godoy$ ssh-agent screen
Isto irá carregar o Screen como um processo filho do ssh (verifique com um ps afx)
2) De dentro do Screen, antes de abrir seus terminais virtuais, vamos carregar sua passphase para a memória para não ter que digitar a cada login nos servidores que for conectar:
Zen-La:~ Godoy$ ssh-add
O sistema irá solicitar a sua passphase , como abaixo:
Enter passphrase for /Users/Godoy/.ssh/id_dsa:
Podes verificar o figerprint de sua assinatura com o comando abaixo:
Zen-La:~ Godoy$ ssh-add -l
Ou se podes verificar sua chave-publica com o comando abaixo, é útil para copiar e colar no arquivo authorized_keys que vais acessar:
Zen-La:~ Godoy$ ssh-add -L
3) Agora já podes abrir outros terminais virtuais (ctrl+c) de dentro do Screen e acessar todos os Servidores para os quais já carregou sua Chave-Pública sem precisar digitar qualquer senha ou sua passphase.
Zen-La:~ Godoy$ ssh nome-do-user@IP-da-outra-maquina
Podes fechar os terminais com ctrl+k e abrir outros com ctrl+c ou até mesmo dividir as tela de um terminal virtual em dois, logando em servidores diferentes e rodando aplicações distintas … em suma usando todos os recursos do Screen deslogando quantas vezes for necessário e logando novamente sem precisar digitar a senha ou a passphase novamente.
OBS1:> Se sair do Screen fechando todos os terminais virtuais ou matando o processo terá que fazer os passos 2 e 3 novamente!!
OBS2:> Só mais uma dica: Teste levantar o X como processo filho do ssh com o comando abaixo e veja que o uso do ssh-agent são limitados pela sua imaginação:
Zen-La:~ Godoy$ ssh-agent startx
Abraços

Textos do Blog Blogmind sao licenciados sobre a Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License.
Parte do Trabalho de Leandro Godoy - www.opencode.com.br.







Total