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

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.

Atualizado a 12/02/2008

Opções de visualização dos comentários

Seleccione a sua forma preferida de visualização de comentários e clique "Gravar configuração" para activar as suas alterações.

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

oi eu sou o victor.. eu não sei muito sobre servidores..
por favor poderiam me explicar:
o q é o modo terminal??

atenciosamente .. victor jads

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

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.

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

Segui todos os passos mas quando executo dá erro.
O meu servidor nao tem a pasta Authorized_keys será que e por causa disso ,
Quando executo da a msg : uthorized_keys
Grato
Alex

Submeter um novo comentário

O conteúdo deste campo é privado e não irá ser exibido publicamente.
CAPTCHA
Esta verificação serve para garantir que este função está a ser usada por um utilizador legítimo.
4 + 9 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.