Autenticação SSH por Chave Pública no Huawei
Introdução
A autenticação baseada apenas em usuário e senha ainda é amplamente utilizada, porém está mais suscetível a ataques como força bruta, vazamento e reutilização de credenciais. Para aumentar a segurança do acesso aos equipamentos da infraestrutura, recomenda-se utilizar a autenticação por chaves SSH, que oferece um mecanismo mais robusto e confiável para identificação dos administradores.
Orientações importantes para a sua chave SSH RSA:
- Utilize chaves RSA com tamanho adequado;
- Proteja a chave privada com uma senha;
- Nunca compartilhe a chave privada;
- Revogue imediatamente chaves comprometidas;
- Restrinja algoritmos e métodos de autenticação.
Configurando
0 - Crie sua chave SSH pública e privada. Se não tiver uma chave ssh, crie uma com o comando abaixo em um servidor Linux ou da maneira que preferir. Porém, se você já tem uma chave SSH compatível pode usar ela sem problema algum.
cd ~/.ssh ssh-keygen -t rsa -b 4096 -f <nome-da-chave> -C "<comentario>"
Visualize sua chave pública
cat <nome-da-chave>.pub
1 - Configure os métodos e chaves (aumento de compatibilidade).
Servidor
ssh server cipher aes128_gcm aes256_gcm aes128_ctr aes256_ctr ssh server hmac sha2_256 sha2_512 ssh server publickey rsa rsa_sha2_256 rsa_sha2_512 ecc ssh server key-exchange curve25519_sha256 ecdh_sha2_nistp256 dh_group16_sha512 ssh server dh-exchange min-len 2048 ssh server rsa-key min-length 2048 commit
Cliente
ssh client publickey ssh client cipher ssh client hmac ssh client key-exchange commit
2 - Importe a sua chave pública.
- Cada bloco é referente a um trecho de configuração sequencial que deve ser respeitado;
- No comando public-key-code begin pressione enter e cole a sua chave pública, incluindo o ssh-rsa e o comentário final, do mesmo jeito quando você visualizou com o comando cat no passo 0;
- A chave pública utilizada foi gerada apenas para o tutorial :)
rsa peer-public-key <nome-da-chave> encoding-type openssh public-key-code begin
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCiOKoFlZrpLMVGb6tz0sQ+BP+mSJzm9PAhrqBz3KrAAZnsdSQB05QMXtmQstpTaOLf80/ZVpm5Zhi0EsfY7gDcZPCElJU0GD+SZaBB3fTAxkHqogxN0a4bBxd2J+e+yiIrh/QSpCBVwNBlnYFtkHbyz3TRsemMwPqJMB+qrC9PoYTxaURU4ZXP8KIDdwWJvBlU3tqq4l+wJVIkHNOGAwqztIYKlR50YDKD8x74bzexZL4YXkY7KOl/UWf2iR0S6LKm/ucq6G9qlN/9FmrWTUgYSUtbURec25kyHkNAebEhGEAYGLc6X3t5EKkVsVeueMEL6iRMpWCPiFMzU0yryJgdk5QXvFN3sRzXxU/fcshJey6lsDA+wNVp+RMsTVGfbAnasM/Oo/W5gz9dthnIQIQ4AKZks6At/OTvD0B/bZW0GA2fpQw4wNHEvBeyC5yGQay+uRpuwgojsO8W0YDc62MHXxPp75yu8ZUPjobbqtWWBHsL0hISVulMTZkkAffJfxJkxx2nXBbAyKbIPLwcOnogVbvZ1VD4tA6epoNzVBXObTNKCKDpvCIFELikjNGutFzHQ11R3qXgo5fnEhFRML2l77siZponJ0v7lsV1Nia9Izc91YxtOaRIp2I1+lhe+FQf65bvpjHytBZJWE2+/ju4AIGKDK8PLnvDd3miP+8v4Q== erickchave
public-key-code end peer-public-key end commit
3 - Defina o tipo da autenticação do usuário como rsa.
Preste bem atenção porque depois desse commit você não conseguirá mais realizar o acesso usando usuário e senha, se você estiver inseguro, use o comando commit trial 60, que manterá sua última alteração por 60 segundos. Então caso algo dê errado você terá acesso ao equipamento novamente em 1 minuto, mas se tudo der certo você faz o commit permanente. Durante o tempo do commit trial 60, você terá 1 minuto para realizar o teste de acesso via ssh usando o novo método configurado.
O commit trial lembra muito a função Safe Mode do Mikrotik, no caso do Huawei independente se você permanece com acesso ou perde as configurações são revertidas.
ssh user <usuario> ssh user <usuario> authentication-type rsa ssh user <usuario> assign rsa-key <nome-da-chave> ssh user <usuario> service-type all commit
4 - Troubleshooting
- Se houver a necessidade de realizar um troubleshooting para analisar as configurações, use os comandos abaixo.
- É importante ressaltar que programas de gerenciamento de acesso SSH (Putty, MobaXterm etc) precisam estar atualizados, caso contrário bugs e incompatibilidades podem surgir.
- A versão do sistema VRP utilizado para esse tutorial foi a V800R022C00SPC600, então esteja atento a mudanças de comandos a depender da sua versão.
Roteador
display ssh user-information <usuario> display rsa peer-public-key brief display rsa peer-public-key name <nome-da-chave>
Linux
ssh -i ~/.ssh/<nome-da-chave> -p <porta-ssh> <usuario>@<ip-do-equipamento>
Autor: Erick Andrade