você está aqui: Home  → Arquivo de Mensagens

Logando com segurança num servidor ssh sem uso de senha

Colaboração: Gabriel Menezes Nunes

Data de Publicação: 04 de Agosto de 2005

Nesta dica ilustrarei como logar num servidor ssh sem uso de senha, mas mantendo a segurança. Como farei isso? Será usada criptografia assimétrica, que é baseada em uso de duas chaves: uma pública e uma privada. A pública será colocada no servidor enquanto que a privada ficará em sua máquina. Esse tipo de logon é bastante usado caso você faça muito uso de scripts e não é boa idéia colocar a senha nesses tipos de arquivo. segue abaixo:

Criação das chaves

Exemplificando como se o usuário "gabriel" fosse aquele para o qual você quer criar a chave (serve para qualquer usuário).

Digite no console:

  ssh-keygen -b 1024 -t rsa

Esse comando chama o utilitário 'ssh-keygen' e diz para criar uma chave de 1024 bits e usando o algoritmo rsa. Para a chave ser criada deverá ter no mínimo 512 bits, mas 1024 é o suficiente para ter uma ótima segurança. Caso seu servidor use SSH versão 1 terá que ser usado o algoritmo rsa, mas se for versão 2 poderá ser usado tanto rsa como dsa. Caso use dsa, ficará assim: ssh-keygen -b 1024 -t dsa.

Feito isso aparecerá no seu console:

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

Aqui será especificado o local onde será criada as chaves. O ideal é não alterar. Pressione ENTER.

  Enter passphrase (empty for no passphrase):

Nesse ponto é que está o segredo!!! Aqui pedirá uma 'passphrase' que é uma 'frase-senha', mas como queremos nos logar sem senha, aperte ENTER, e não coloque nada.

  Enter same passphrase again:

ENTER de novo.

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

Aparecendo isso que dizer que as chaves foram criadas com sucesso. (A 'key fingerprint' é diferente em cada caso). Agora falta pouco para terminarmos... Digitando esse comando:

  scp id_rsa.pub gabriel@10.0.0.5:/home/gabriel/.ssh/

Será copiado nossa chave pública para o servidor. Não esqueça, tem que ser a chave PÚBLICA. A privada nunca sai de sua máquina. scp é o utilitário que irá copiar nossa chave, id_rsa.pub é a nossa chave (caso você tenha escolhido o algoritmo DSA, o nome será id_dsa.pub), gabriel é o usuário, 10.0.0.5 é o servidor e finalmente o caminho para onde vai a chave.

Agora logando-se na máquina você perceberá que o servidor ainda pede a senha. O que temos que fazer é ir no diretório onde está a chave pública e mudarmos o nome para 'authorized_keys':

  mv id_rsa.pub authorized_keys (caso seja rsa)
  mv id_rsa.pub authorized_keys2 (Olha o 2 aí)(caso seja dsa)

Dê um logout com 'exit': exit

E logue-se de novo e não pedirá mais a senha!!!!



 

 

Veja a relação completa dos artigos de Gabriel Menezes Nunes

Opinião dos Leitores

Rodrigo
02 Mai 2014, 14:28
Excelente dica.
Eduardo Villela
02 Jan 2014, 17:40
Olá,
Funciona que é uma maravilha... rs.. Mas estou com um problema com um servidor específico.

Não consigo fazer funcionar em um servidor radhat 5.5.

Alguém tem alguma idéia do que pode ser?

vlw!!!
Fabio Nowaki
18 Mar 2013, 16:12
Dica: utilizar o campo ssh-copy-id ao invés de fazer um scp e depois copiar a chave para o authorized_keys.

O ssh-copy-id faz tudo isso já..

Exemplo: ssh-copy-id -i id_rsa.pub user@ip
Raphael Freire
29 Jul 2011, 12:23
No ubuntu é necessário executar o comando ssh-add após criar as chaves pública e privada.

Jeremias
06 Abr 2011, 18:15
Se você der um cat no arquivo id_rsa.pub, irá notar que ele possui apenas uma linha, Jimmy.

Para fazer o que você precisa, é só colar no arquivo authorized_keys o output do cat no seu id_rsa.pub da maquina de origem.

Assim no servidor de destino você terá um arquivo authorized_keys com várias linhas, sendo que cada linha é um id_rsa.pub de máquinas diferentes.

Sacou ?
Abraço;
Jimmy
11 Mar 2011, 16:40
Olá,

Segui a receita de bolo e funcionou 100%, obrigado.

Porém eu tenho uma outra situação em que já existe no
server onde desejo me logar um arquivo authorized_keys ,
provavelmente de outro servidor.

Na verdade tenho vários servidores conectando-se uns
aos outros com ssh. Nesse caso , como adicionar um novo
servidor ou uma nova chave quando já existe alguma ?

Obrigado,
Jimmy.
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script