SSH sem senha não funciona? Eis a solução

Publicado por Fábio Berbert de Paula em 24/06/2007

[ Hits: 19.724 ]

Blog: https://fabio.automatizando.dev

 


SSH sem senha não funciona? Eis a solução



Depois de algumas semanas sem conseguir configurar meu notebook para acessar meus servidores remotos usando SSH sem senha, finalmente parei pra ler as páginas de manual e descobri o problema, que é bem simples por sinal. Testado em Debian, mas com certeza vale pras demais distribuições.

O problema

Partindo do princípio que você já sabe como configurar SSH sem senha (tem várias fontes sobre aqui no VOL), vou explicar resumidamente.

Estava criando o arquivo de identificação do meu desktop da seguinte forma:

$ ssh-keygen -t dsa

Daí ao responder a seguinte pergunta:

Enter file in which to save the key (/home/fabio/.ssh/id_dsa):

Eu mudava a localização padrão da chave, para por exemplo, notebook_dsa. No servidor remoto (192.168.0.100 neste caso) eu seguia os procedimentos normalmente:

$ scp notebook_dsa.pub 192.168.0.100:~/.ssh/
$ ssh 192.168.0.100


E lá (remotamente):

$ cat ~/.ssh/notebook_dsa.pub >> ~/.ssh/authorized_keys

Porém o acesso sem senha teimava em não funcionar. O problema é que o SSH ao tentar se autenticar procura pelos arquivos ~/.ssh/identity (para o protocolo 1) ou ~/.ssh/id_rsa e ~/.ssh/id_dsa (para o protocolo 2). Como notebook_dsa não é um dos caminhos padrão para o mesmo, ele se confundia e não autenticava.

Solução

Renomear a chave privada de notebook_dsa para id_dsa. A chave pública pode ter qualquer nome. Se não quiser renomear, pode tentar o acesso usando o parâmetro -i, por exemplo:

$ ssh -i ~/.ssh/notebook_dsa 192.168.0.100

Devem haver outras formas de contornar esse problema, mas essas já me foram o suficiente. :)

Um abraço.

Outras dicas deste autor

Contagem regressiva no terminal

Informações sobre semáforos e memória compartilhada

Verificar se determinada porta está aberta com o comando echo (funciona remoto)

O comando more

SED - combinando o conteúdo de dois arquivos

Leitura recomendada

Aumentando o nível de segurança em senha

Paros Proxy - Web Application Security

Instalando e integrando Snort, Barnyard e PostgreSQL no Linux

SqStat - Monitorando logs do Squid em tempo real!!!

Novo blog sobre segurança da informação

  

Comentários
[1] Comentário enviado por ilacrose em 10/12/2007 - 00:27h

SSH sem senha!


Olá Pessoal... o assunto é SSH (Secure Shell), um recurso utilizado normalmente para acesso remoto em servidores Linux através de uma conexão segura, ou seja, encriptada.

O serviço de SSH permite fazer o acesso remoto ao console de sua máquina. Em outras palavras, você poderá acessar sua máquina como se estivesse conectado localmente ao seu console (substituindo o rlogin e rsh). A principal diferença com relação ao serviço telnet padrão, rlogin e rsh é que toda a comunicação entre cliente/servidor é feita de forma encriptada usando chaves públicas/privadas RSA para criptografia garantindo uma transferência segura de dados.

A velocidade do console remoto conectado via Internet é excelente (melhor que a obtida pelo telnet e serviços r*) dando a impressão de uma conexão em tempo real (mesmo em links discados de 9.600 KB/s). A compactação dos dados também pode ser ativada para elevar ainda mais a velocidade entre cliente-servidor ssh. Além do serviço de acesso remoto, o scp possibilita a transferência/recepção segura de arquivos (substituindo o rcp).

Em conexões sem criptografia (rsh, rlogin), os dados trafegam de forma desprotegida e, caso exista algum sniffer instalado em sua rota com a máquina destino, todo o que fizer poderá ser capturado (incluindo senhas).

As principais características do SSH são:

. Conexão de dados criptografada entre cliente/servidor.
. Suporte a caracteres ANSI (cores e códigos de escape especiais no console).
. Suporte a PAM.
. Cópia de arquivos usando conexão criptografada.
. Suporte a ftp criptografado (sftp).
. Suporte a compactação de dados entre cliente/servidor.
. Controle de acesso das interfaces servidas pelo servidor ssh.
. Suporte a controle de acesso tcp wrappers.
. Autenticação usando um par de chaves pública/privada RSA ou DSA.

Agora que já sabemos um pouco sobre o SSH, vamos a um exemplo prático de utilização desse recurso, porém de uma forma diferenciada, “Sem Senha”.

Passos para configurar o SSH sem senha:

Instale o pacote do ssh

#apt-get install ssh

Em seguida, devemos criar uma chave de autenticação RSA para estar apto a logar em um site remoto de sua conta sem ter de digitar sua senha. Para isso execute o seguinte comando:

#ssh-keygen -b 1024 -t rsa

Será gerada uma chave privada e uma chave pública. Com versões antigas do SSH, essas chaves ficarão armazenadas em ~/.ssh/identity e ~/.ssh/identity.pub; com versões novas, serão armazenadas em ~/.ssh/id_rsa.pub. ~/.ssh/id_rsa e ~/.ssh/id_rsa.pub.

O comando irá solicitar também uma frase secreta.

Em seguida, adicone o conteúdo do arquivo da chave pública dentro de ~/.ssh/authorized_keys, para isso utilize o seguinte comando:

#cat ~/.ssh/id_rsa.pub > authorized_keys

Feito isso, instale a chave pública no servidor remoto que deseja se conectar copiando o arquivo “authorized_keys” através do comando:

#scp ~/.ssh/authorized_keys usuario@ip_servidor:~/.ssh/

Após realizar o procedimento descrito acima, teste o acesso ao servidor:

$ssh usuario@ip_servidor

Dessa forma, será possível que você realize o acesso remoto a seu servidor, de uma forma segura sem a necessidade de senha.


ps. esse artigo não é de minha autoria, no entanto segui esses passos e funcionou tudinho aqui...
abração

Espero que sejá útil para todos.

[2] Comentário enviado por removido em 22/11/2016 - 10:14h

Google cismou com minha chave hoje, só consegui logar referenciando manualmente desta forma.
Obrigado.

------------------------------------------------------
KISS principle, RTFM and STFW = 42



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts