terça-feira, 4 de agosto de 2015

Acesso SSH via chave pública em servidores Linux


A maioria dos Adminstradores de sistemas voltam seu tempo a tomar medidas preventivas de segurança em relação a chaves SSH, FTP, Banco de Dados, senhas, processos e afins, e algumas das medidas mais comuns é tentar fechar ao máximo o acesso aos protocolos de comunicação como o SSH.
Entre as medidas mais comuns estão a mudança de porta do serviço, permitir apenas X usuários a efetuar o login, desabilitar o usuário Root e etc.

Usar a autenticação via chave publica é apenas mais uma camada de proteção para os seus servidores, uma vez que o uso de senhas se torna dispensável pois a autenticação será realizada a partir de uma key gerada exclusivamente para o seu computador.

Para gerar a chave basta digitar o comando no seu computador local:
# ssh-keygen -t rsa


É importante ressaltar que a senha da sua chave é de extrema  importância, então é recomendável que você utilize uma senha forte para aumentar a segurança da mesma. Chave sem senha não é absolutamente nada. se ela for comprometida, a chave vai junto.

Note que a chave foi salva no diretório /home/matheus/.ssh/id_rsa.pub. Agora vamos copiar nossa chave para algum lugar temporário.


# cat /home/USUARIO/.ssh/id_rsa.pub

O resultado foi:




Copie todo o resultado para um txt ou algo de sua preferência que não quebre linhas. Esta chave deve ficar em apenas uma linha para que funcione corretamente.

agora

# ssh-add

Digite a senha da chave

E Pronto!

Agora teremos que acessar o servidor de destino em que iremos nos autenticar com a chave e criar um usuário pra ela. Note que eu criei um usuário com o mesmo nome do que eu uso no meu computador. Se você já possuir um usuário que queira acessar com a chave dentro do servidor, basta ignorar os três primeiros passos.

NO SERVIDOR: 

Criando o usuário:
# adduser matheus

Entre no diretório do usuário
# cd /home/matheus/

Se o mesmo não existir, crie o diretório chamado ".ssh"
# mkdir .ssh

Acesse o diretório
# cd .ssh/

Se o mesmo não existir, crie o arquivo authorized_keys
# nano authorized_keys
E insira o conteúdo que foi gerado para a chave anteriormente. Lembrando que ela deve ficar em apenas uma linha. Portanto verifique e tenha cautela para não causar quebras de texto.


Salve e feche o arquivo.

Altere as permissões do diretório
# chmod 700 .

E do arquivo
# chmod 600 authorized_keys

E por último de todo o diretório .ssh
# chown -R matheus:matheus /home/matheus/.ssh


Agora vamos reiniciar o serviço ssh

# service ssh restart


Prontinho, agora vamos fazer a autenticação para validar a chave

ssh usuario@ip-do-servidor 

E digitar a senha da chave. 

Agora seu computador estará se autenticando automaticamente servidor sem precisar de senha para acesso. 

:)

SOBRE O AUTOR

Matheus Fidelis

http://msfidelis.github.io/

Power Ranger, Piloto de Helicópteros e Astronauta da NASA. Desenvolvedor Web PHP com foco em Backend e POO, Linux SysAdmin DevOps e Entusiasta Python. Criou esse site pra contribuir com a comunidade com coisas que aprende dentro de um setor maluco de TI :)

Postar um comentário

 
Nanoshots | Open Source Security, Linux e Tutoriais © 2015 - Designed by Templateism.com