SSH - Conexão sem senha

Neste artigo mostrarei como fazer conexão SSH sem utilização de senha, tanto no GNU/Linux como no Windows, agregando configurações que podem melhorar, e muito, a segurança em seu servidor SSH.

[ Hits: 26.124 ]

Por: Jeferson R. Costa em 01/03/2013 | Blog: http://www.jefersonrc.com.br/


No GNU/Linux



Administrar servidores não é uma tarefa muito simples, e uma das tarefas mais difíceis é memorizar todos os usuários e senhas de acesso. Sorte que podemos contar com uma opção muito útil do SSH, a conexão via chave pública/privada.

Obs.: Para entender como funcionam as chaves públicas/privadas, sugiro a leitura deste artigo:
O primeiro passo é gerarmos as chaves. Este procedimento deve ser feito na máquina de onde será feita a conexão (cliente), para isso, vamos utilizar o seguinte comando:

Obs.: Usarei como exemplo o usuário "joao" para o cliente e "joao_servidor" para o servidor.

# ssh-keygen

Obs.: O tipo padrão para a criação da chave é RSA, porém, caso queira especificar o tipo da chave, basta adicionar ao comando o parâmetro: -t rsa

Depois de executar o comando acima, você será perguntado sobre o nome do arquivo, no nosso caso, deixaremos o padrão (/home/joao/.ssh/id_rsa) e vamos pressionar ENTER.

Logo depois você terá a opção de adicionar uma passphrase à sua chave, porém, toda vez que for conectar, será necessário digitar essa senha. No nosso caso, deixarei em branco para não precisar usar senha, sendo assim, basta pressionar ENTER duas vezes.

Pronto. Sua chave já foi gerada, para conferir basta entrar no diretório que escolhemos para salvar a chave (/home/joao/.ssh/id_rsa) e verificar se os arquivos "id_rsa" e "id_rsa.pub" foram criados.

Agora o que temos que fazer é passar a chave pública para o servidor SSH, porém, antes de mais nada, devemos verificar se no servidor há a pasta ".ssh" (o " . " indica que é um diretório oculto) dentro da HOME do usuário que usaremos para logar (no caso: joao_servidor), se não existir, devemos criar.

Depois do diretório criado, passamos o arquivo com o seguinte comando:

# scp /home/joao/.ssh/id_rsa.pub joao_servidor@server:/home/joao_servidor/.ssh

Pronto, o que tínhamos que fazer na máquina cliente já terminamos, agora devemos entrar no servidor SSH para terminarmos a configuração.

Já logado no servidor SSH, jogaremos nossa chave pública para o arquivo de autenticação:

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

Pronto, agora podemos voltar para a máquina cliente e testarmos a conexão com o seguinte comando:

# ssh joao_servidor@servidor

Se tudo correr bem, você logará no servidor sem ter que digitar a senha.

    Próxima página

Páginas do artigo
   1. No GNU/Linux
   2. No Windows
   3. Concluindo
Outros artigos deste autor

Monitorando Rede com Zabbix no Debian 7

Implementando Servidor NTP no Debian

Leitura recomendada

Gerenciamento centralizado de usuários de rede com GOSA

Configurando o TIM WEB - HUAWEI E220

Criando um tema de apresentação no Mandriva

VsFTPD com TLS no Debian 4.0

Tutorial Apache + PHP + MySQL no OPENBSD 3.5

  
Comentários
[1] Comentário enviado por obernan em 01/03/2013 - 11:44h

Parabéns pelo artigo. Testei aqui e deu certinho, muito bom !!!!

[2] Comentário enviado por joaorubens em 01/03/2013 - 12:36h

Li seu artigo e vi que você tem intimidade com ssh
tenho um poste aqui no fórum do viva o linux sobre uma dúvida minha e se você puder da uma olhada

http://www.vivaolinux.com.br/topico/vivaolinux/Como-enviar-email-via-SSH

valeu.

[3] Comentário enviado por noobv3rn em 02/03/2013 - 19:37h

Em minha opinião só de acessar os seus servidores através do Window$ já é o maior descuido de segurança possível aqui... (Deixando-nos vulneráveis aos keylogger's de usuários mal intensionados) já que o Linux nos dá a comodidade de rodar diretamente através de CD's e memórias flash... pendrives... etc...
complementando com uma dica... o processo de gerar e disponibilizar a chave pública pode ser reduzido do seguinte modo:

primeiro gera-se a chave com o ssh-keygen... deixando-a em branco como você citou...
depois utilizamos a ferramenta ssh-copy-id para copiar sua chave para o arquivo ~/.ssh/authorized_keys

$ ssh-copy-id -i ~/.ssh/id_rsa.pub joao_servidor@servidor

depois com o acesso liberado... é só agendar todas as tarefas de rotina sem necessidade de estar logado para isso...

[4] Comentário enviado por rcjeferson em 03/03/2013 - 10:05h

Como o nosso amigo noobv3rn citou, realmente só de usarmos o Window$ estamos vulneráveis, mas infelizmente muitos assim como eu não tem escolha pois há um padrão a seguir, e nesses casos, como citado no artigo, uma boa saída é desabilitar o acesso com senha aos servidores e acessa-los somente através das chaves, evitando ataques com Keylogger por exemplo. Mas a dica é muito boa, não conhecia essa ferramenta (ssh-copy-id). Obrigado!

[5] Comentário enviado por walisson123 em 19/04/2013 - 17:00h

Como muda a porta de entrada? para 2222

[6] Comentário enviado por rcjeferson em 19/04/2013 - 19:38h

Só alterar no arquivo /etc/ssh/sshd.conf o parametro port para 2222.

Qualquer coisa manda ai.

[7] Comentário enviado por walisson123 em 20/04/2013 - 09:00h

Mudei a porta mais ele ainda esta usando a porta 22 oque faço agora?

[8] Comentário enviado por rcjeferson em 20/04/2013 - 11:34h

Reiniciou o serviço do SSH?

[9] Comentário enviado por walisson123 em 20/04/2013 - 11:46h

Sim

[10] Comentário enviado por rcjeferson em 20/04/2013 - 14:09h

existem dois arquivos dentro de /etc/ssh o ssh_config e o sshd_config... O arquivo correto é o sshd_config... Verifique se alterou o arquivo correto.

[11] Comentário enviado por bolsoni em 18/11/2014 - 11:08h

Não esqueça de verificar se a porta 2222 está liberada no firewall também.

[12] Comentário enviado por Cassoll em 09/10/2017 - 12:32h

Vale lembrar que o comando ssh-copy-id <IP_da_maquina>, já envia o mesmo para o arquivo autorized_keys, sem precisar realizar o comando que foi mostrado para este passo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts