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

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

[ Hits: 19.936 ]

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

Sed - como salvar alterações no arquivo

Como converter uma imagem em favicon de múltiplas resoluções

Como usar extensões do Google Chrome no Opera

Trophy, um jogo de corrida de carros muito legal

iptables - Como apagar uma regra NAT

Leitura recomendada

Vulnerabilidade na variável PATH

Site para criar regras IPtables

Serviços desnecessários rodando no S.O. são um risco

Autenticação no Apache2

NoScript - Proteção quando o assunto é XSS e Clickjacking

  

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