O poder do SSH

Neste artigo pretendo mostrar o quanto o SSH pode ser útil e o quanto podemos produzir com os recursos que ele oferece, que vão desde um backup automático até a execução de um simples comando e a criação de uma chave pública para acesso sem senha. Há também exemplos com código-fonte de scripts que fazem a mesma tarefa, mas de modo automático.

[ Hits: 83.861 ]

Por: Djair Dutra C. Jr. em 23/06/2007


Login automático por ssh (sem senha)



Aqui está outra aplicação útil para o comando ssh. Criar chaves públicas para logar sem senha, diminuindo consideravelmente o tempo gasto no trânsito de um usuário entre vários servidores.

É fácil e rápido configurar o acesso sem senha por ssh entre dois computadores. Veja como:

1. No computador cliente, digite o seguinte comando:

# ssh-keygen -b 1024 -t rsa

Esse comando cria uma chave de 1024 bits e usando o algoritmo rsa. Após executar esta linha de comando deverá aparecer outra na sua tela, conforme o exemplo abaixo:

Enter file in which to save the key (/root/.ssh/id_rsa):

Ele está pedindo o nome de um arquivo para criar a chave. Pressione apenas ENTER, aceitando a sugestão da tela.

Aparecerá a linha abaixo. Esta linha está pedindo uma "frase-senha", mas como o que queremos é criar um acesso direto sem senha, pressione apenas ENTER.

Enter passphrase (empty for no passphrase):

Após isso aparecerá a linha abaixo, solicitando uma confirmação da frase-senha anterior. Pressione ENTER novamente.

Enter same passphrase again:

Se tudo foi feito corretamente, apareceu a o texto abaixo, confirmando a criação da chave pública. Esta chave é um arquivo está no seu computador.

The key fingerprint is:
c5:62:55:5e:97:a7:64:aa:b7:79:82:06:89:1d:c2:0c root@branco.localdomain

Para que o servidor possa autorizar conexões por ssh sem senha deste computador você precisa enviar o arquivo /root/.ssh/id_rsa.pub para ele (servidor) e colocá-lo dentro da pasta /root/.ssh. Depois deve renomear o arquivo para authorized_keys. Se quiser use o comando abaixo que já faz tudo de forma automática (envia e renomeia):

# scp /root/.ssh/id_rsa.pub 200.251.75.114:/root/.ssh/authorized_keys

Pronto! Agora tente acessar o servidor ssh e ele não pedirá mais a senha.

Os passos a repetir, caso tenha dado algo errado, são:
  1. Criar uma chave pública (ela ficará no seu computador em /root/.ssh/id_rsa.pub)
  2. Enviar esta chave (ou este arquivo. Como achar melhor) para o servidor de ssh.
  3. Renomear o arquivo de id_rsa.pub para authorized_keys.

Vale lembrar que executei todos os comandos como root. Se você usa um usuário comum deverá considerar as devidas diferenças.

Se desejar, pode copiar as linhas abaixo para criar um script que faz isso sozinho também.

#!/bin/sh
clear
porta=$2
host=$1
if [ "$porta" == "" -o "$host" == "" ]; then
echo
echo
echo "Especifique o host de destino e a porta, digitando da seguinte forma:
./nome_do_script [host] [porta]"
echo
else
ssh-keygen -b 1024 -t rsa -P "" -l -f $HOME/.ssh/id_rsa &&
echo "Digite a senha para enviar a chave de acesso para $host:"
scp -P $porta $HOME/.ssh/id_rsa.pub $host:$HOME/.ssh/authorized_keys &&
if [ "$?" == "0" ]; then
echo
echo "##############################################"
echo "############# OPERAÇÃO CONCLUÍDA #############"
echo "##############################################"
echo "A chave foi enviada com sucesso para o host $host.
Para remover o acesso automático, exclua o arquivo /root/.ssh/authorized_keys no host $host,
ou apague apenas a linha que se refere a este computador."
fi
fi

IMPORTANTE: Para executar o script corretamente, use o comando abaixo sem alterar a ordem dos objetos:

./nome_do_script ip_servidor _porta_ssh_servidor

Ou seja:

# ./script 200.223.75.223 22

Página anterior     Próxima página

Páginas do artigo
   1. Iniciando
   2. Login automático por ssh (sem senha)
   3. Criando backups em servidores remotos
   4. Segurança
Outros artigos deste autor

Esqueça tudo e venha para o Linux!

A verdade sobre as ACLs do Squid

Autenticação de sites com PHP e MySQL

Desenvolvimento Web - Simples dicas de segurança

Layer7 e compilação do kernel mole-mole com Conectiva 10

Leitura recomendada

Padrões Abertos e Interoperabilidade na Geotecnologia

Instalando XGL + Compiz no Ubuntu Dapper com o driver Nvidia

Criando mirror do AVG 7.5 free

Atualizando para KDE-3.2 usando o APT no SuSE 9

Logstash + Redis + Elasticsearch + Kibana - Gerenciando logs

  
Comentários
[1] Comentário enviado por Gleidison em 23/06/2007 - 12:10h

bao tarde amigo. não sei muita coisa me linuz. mas acabe ide alugar um servidor dedicado e não saco como gerenciar ele eu gostaria de uma ajuda tipo. como eu faço os backps automaticos de todos os meusclientes e no com eu restauro ou instalo algoi assim. tipo gerenciar o servidor pelo monos o basico se tever como vc me passar ficarei muito grato.

[2] Comentário enviado por malacker em 24/06/2007 - 11:04h

Quanto aos backups, há inúmeras possibilidades de acordo com o tipo de dados que você tem, bem como o tamanho dos bds.
Se seu bd for MySql tem um tipo de backup. Se for em simples arquivos texto, tem outro tipo e por aí vai.
Quanto a instalar, desinstalar ou atualizar alguma coisa, vai depender muito tb do seu tipo de distribuição.
Para criar os backups, sem dúvida vc deverá usar o comando crontab. Para "zipar" os arquivos vc deverá usar o comando tar. Para integrar todas as tarefas, você deverá integrar tudo através de um script. Como vc diz não ter muito conhecimento de linux, lhe aconselho buscar informações básicas antes de entrar direto em backups, transferências, compactação, etc.

[3] Comentário enviado por calaff2 em 25/06/2007 - 11:28h

bala!! Viva o linux!

[4] Comentário enviado por ederalves em 25/06/2007 - 18:13h

ai vc e o cará sou teu fá.rsrsr

[5] Comentário enviado por rklein em 26/11/2007 - 11:28h

Para seu script funcionar e nescessario liberar o login por root neh ??
e tbm e nescessario colocar a senha de usuario !!! como faço pra aceitar so a chave de criptografia ???

[6] Comentário enviado por alanskate em 16/02/2010 - 14:22h

muito bom, precisei usar isso hoje no trabalho :)

[7] Comentário enviado por cvasconcelosb em 28/05/2010 - 10:11h

Bom dia Djair Dutra,

EXCELENTE artigo, principlamente no tópico referente ao "Login automático por ssh (sem senha)".

Parabéns


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts