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
Outros artigos relacionados
- Autenticação automática sem senha com protocolo SSH
- Criando túneis de tráfego através de ligações SSH - Enviar e receber correio electrónico criptado num túnel SSH
- Criando túneis de tráfego através de ligações SSH - Introdução
- Criando túneis de tráfego através de ligações SSH - Compreendendo o port forwarding
- Ferramentas gratuitas para particionar o disco
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