Autenticação automática sem senha com protocolo SSH | DeServ – Info
Lomadee, uma nova espcie na web. A maior plataforma de afiliados da Amrica Latina.

Autenticação automática sem senha com protocolo SSH

By Flávio Silva

Sempre que se estabelece uma conexão baseada no protocolo SSH (por exemplo, com os comandos SSH, SCP, SFTP ou RSYNC) é necessário digitar a password (senha) em algum momento do processo.

Este artigo explica como estabelecer uma ligação usando o protocolo SSH sem uso de senha (SSH password-less) e com total segurança. 

1 – Criação das chaves

Vamos criar as chaves. Para isso em modo terminal, digitar o seguinte comando:

ssh-keygen -t rsa

O comando anterior irá criar uma chave de 512 bit usando o algoritmo rsa. Mas se quisermos melhorar a segurança da nossa chave, podemos criar uma chave de 1024 bit. Assim, em alternativa podemos usar o seguinte comando:

ssh-keygen -b 1024 -t rsa

Após o passo anterior, irá ser pedido qual o ficheiro onde se guarda a chave. Apenas pressione a tecla “enter” para passar à fase seguinte.

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

De seguida será ser pedida a “passphrare” (ou “frase senha”). Não indique nada e carregue apenas em “enter”.

Enter passphrase (empty for no passphrase):

Será pedida uma confirmação da “frase senha”. De novo passe adiante usando a tecla “enter”.

Enter same passphrase again:

Chegou agora à conclusão do procedimento de criação das chaves. Aparecerá uma mensagem semelhante a esta:

Your identification has been saved in /home/user/.ssh/id_rsa. Your public key has been saved in /home/user/.ssh/id_rsa.pub. The key fingerprint is: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

Estão criados agora 2 ficheiros: ~/.ssh/id_rsa – chave privada que nunca deverá partilhar ~/.ssh/id_rsa.pub – chave publica que deverá ser colocada nas máquinas onde se pretende ligar sem usar senha Para melhorar a segurança da chave privada e impedir que esta seja lida por terceiros que usem o seu computador, executar o seguinte comando:

chmod 0600 ~/.ssh/id_rsa

Note que qualquer pessoa que tenha esta chave (a sua chave privada!) poderá usurpar a sua identidade e fazer-se passar por sí.

2 – Colocação da chave pública em servidores remotos

Podemos agora passar à colocação da chave pública nos servidores remotos. Vamos assumir neste exemplo que tem um servidor remoto com o nome remote_host e nesse servidor temos o utilizador remote_user.

O ficheiro ~/.ssh/authorized_keys na maquina remote_host contêm uma lista de chaves públicas. Vamos acrescentar o rsa.pub (sua chave pública) à lista de chaves públicas na máquina remote_host. Começamos por copiar o id_rsa.pub para a remote_host.

scp ~/.ssh/id_rsa.pub remote_user@remote_host:rsa.pub_importado

De seguida, vamos adiconar a chave criada às chaves autorizadas. Ligamos ao servidor:

ssh remote_user@remote_host

Cria-se o directório .ssh caso não exista e adiciona-se a chave:

mkdir .ssh chmod 0700 .ssh cat rsa.pub_importado >> .ssh/authorized_keys chmod 0644 .ssh/authorized_keys rm rsa.pub_importado exit

3 – Teste

A partir deste momento poderá ligar-se ao servidor remoto usando os vários comandos do protocolo SSH sem necessitar de digitar a senha. Exemplo:

ssh remote_user@remote_host

Conclusão

Espero que este guia o ajude a optimizar as suas tarefas com o protocolo SSH. Pode deixar o seu comentário ou sugestão de melhoria abaixo.


Fonte: AlexandreCunha.Com
Site: http://alexandrecunha.com/node/9

Tags: , , , , , , , , , , , ,

2 Respostas to “Autenticação automática sem senha com protocolo SSH”

  1. Apaxe

    Olá Flávio Silva, parabéns pelo seu excelente tutorial.

    Tenho um servidor de SSH a correr no CentOS 5.5 e segui o seu tutorial para copiar a chave publica do cliente para o servidor SSH do CentOS 5.5 e deparei-me com os seguintes problemas:
    - O utilizador ROOT no CentOS é o único que não possui o directório “.ssh “ ?
    - Os restantes utilizadores do sistema apesar de possuírem o directório “.ssh” não existe neste o ficheiro “authorized_keys” ?

    Pergunto-lhe se a chave publica é copiada para o directorio “.ssh” de um utilizador qualquer do sistema, e também como não existe o ficheiro “authorized_keys” se o tenho de criar ?

    Obrigado pela sua atenção.

    Current score: 0
    #20
  2. Flávio Silva

    Sim, é isto mesmo, na verdade o arquivo é criado com os camandos que são efetuados para gerar as chaves entre os servidores.

    Grato

    Current score: 0
    #21

Deixe uma Resposta