Linux Servidor linux

Criando chaves SSH no Linux

Criando chaves SSH no Linux

Salve salve galera blz? Nesse artigo eu venho explicar como configurar chaves SSH no Linux, ahh mas isso é fácil… Sim é fácil para alguns e para quem está começando não, a minha ideia é explicar de uma forma simples e objetiva, já que chaves SSH

O que é Security Shell (SSH)

O Security Shell, mais conhecido como SSH, é um protocolo criptográfico para operação de serviços de rede de forma segura sobre uma rede insegura, que permite aos usuários acessar e gerenciar servidores pela internet de forma segura, conectando o cliente SSH em um servidor SSH.

É comum algumas pessoas utilizam o SSH somente com usuário e senha, mas isso pode ser um problema sério de segurança, pois eventualmente uma senha pode ser quebrada com um ataque de força bruta, já com as chaves SSH são quase impossíveis de serem decifradas apenas com força bruta.

Chaves SSH

Chaves SSH, utilizam criptografia assimétrica, que utilizam pares de chaves, uma é privada, onde pertence somente ao proprietário e a chave pública que podem ser amplamente divulgadas sem comprometer a segurança. Ao fechar a conexão SSH, todas as informações são criptografadas e só podem ser descriptografadas com a chave privada.

Chaves SSH no Linux

Suas chaves SSH podem usar um dos seguintes algoritmos:

🚨 DSA : É inseguro e ainda não é mais suportado desde o OpenSSH versão 7, você precisa atualizá-lo!
⚠️ RSA : Depende do tamanho da chave. Se tiver 3072 ou 4096 bits, você estará bem. Menos que isso, você provavelmente deseja atualizá-lo. O comprimento de 1024 bits é considerado até inseguro.
👀 ECDSA : Depende de quão bem sua máquina pode gerar um número aleatório que será usado para criar uma assinatura.
Ed25519 : É o algoritmo de chave pública mais recomendado disponível hoje!

Suas chaves estão seguras?

Para checar as suas chaves existentes execute o seguinte comando:

$ for key in ~/.ssh/id_*; do ssh-keygen -l -f "${key}"; done | uniq
2048 SHA256:HeV8eDqLxIljiZashebdpKgEVsSqeuoSZ4UrkxUteL4 gerson@linuxnaweb (RSA)

No output do comando, logo no início temos o valor 2048, que significa quantos bits a nossa chave possui e no final temos entre parenteses o (RSA) que siginifica o tipo da chave que estamos utilizando, é óbvio que você precisa atualizar a sua.

Criando chaves SSH

Iremos criar a chave SSH do tipo Ed25519, conforme vimos antes, esse tipo de chave é o mais seguro.

Parâmetros utilizados:
[-o] - Definindo o formato da chave como openssh ao invés do formato PEM.
[-a] - São os números de rodadas KDF (Key Derivation Function). Números mais altos resultam em uma verificação mais lenta da senha, aumentando a resistência ao quebra de senha de força bruta, caso a chave privada seja roubada.
[-t] - Especifica o tipo da chave que será criada.
[-f] - Especifica o nome do arquivo que será gerado, ele deve ser gerado no diretório padrão que fica na home do usuário “/home/user/.ssh/
[-C] - Criar comentário. É um informativo, pode colocar qualquer coisa, mas se não especificar será preenchido com seulogin@hostname de quem gerou a chave.

$ ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_ed25519 -C "gerson@linuxnaweb.com"

Ao digitar o comando ele irá pedir para inserir uma passphrase, como o nome já diz, é uma frase secreta que você precisa digitar, ou seja de preferência grande e que você lembre depois!
Acompanhe abaixo a saída do comando após digitar a sua palavra chave.

Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase): <PALAVRA CHAVE>
Enter same passphrase again: <REPITA A PALAVRA CHAVE>
Your identification has been saved in /home/gerson/.ssh/id_ed25519
Your public key has been saved in /home/gerson/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:pWha/8WTmUMKKk2JNcA941cfGL8tywgZXxAxP6WJRFY gerson@linuxnaweb.com
The key's randomart image is:
+--[ED25519 256]--+
|   ...   .X*E .  |
|    ..+  oo*.+   |
|     .oo..o.B.   |
|     o.+.* ..+   |
|    . *.S . + .  |
|     * o o * *   |
|    o o . o @    |
|     .   . . o   |
|          .      |
+----[SHA256]-----+

Pronto a sua chave foi gerada com sucesso 🙂

$ ls -lh
total 8,0K
-rw------- 1 gerson gerson 464 jun 27 01:22 id_ed25519
-rw-r--r-- 1 gerson gerson 103 jun 27 01:22 id_ed25519.pub

Copiando a chave pública para um servidor que irá acessar remoto, lembrando que é necessário, que você tenha um usário de acesso no servidor.

Parâmetros utilizados:
[-i] - Especificar a chave.
[-p] - Porta SSH do servidor remoto.

$ ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 6868 gerson@192.168.68.110

Legal mas pra onde ele copia essa chave ? ela cai no limbo?
Claro que não rsrs, brincadeiras a parte, ela é inserida no arquivo authorized_keys que fica na home do seu usuário, no diretório .ssh.

$ ls -lh ~/.ssh/
total 4.0K
-rw------- 1 gerson gerson 397 May 18 17:10 authorized_keys

Se der um cat no arquivo, verá que é a sua chave pública…

$ cat ~/.ssh/authorized_keys
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPQ3WoGUH06etePzXTgaeBKiIihFMcZW12Fm3RFonLrX gerson@linuxnaweb.com

Após ter inserido a chave no servidor remoto, para acessar ele novamente, faço o comando abaixo:

Parâmetros utilizados:
[-p] - Porta SSH do servidor remoto

$ ssh -p6868 gerson@192.168.68.110

Pronto, agora você sabe como gerar a chave, copiar para o servidor remoto e acessar o servidor após a cópia, e o melhor de tudo, com uma chave muito mais segura que a você tinha (pra quem já utilizava chave SSH).

Como fazer com que a Passphase não seja solicitada sempre que for realizar uma nova conexão SSH, primeiro verifique se o serviço SSH Agent está sendo executado em seu computador, com o seguinte comando:

$ eval "$(ssh-agent -s)"
Agent pid 56150

A saída do comando informa o pid do processo do SSH Agent, o que significa que está em execução. Agora vamos executar o comando abaixo, que irá solicitar a sua passphase que indica, para que seja salva.

ssh-add ~/.ssh/id_Ed25519
Enter passphrase for /home/gerson/.ssh/id_ed25519:
Identity added: /home/gerson/.ssh/id_ed25519 (gerson@linuxnaweb.com)

Após digitar a sua passphrase, perceba a mensagem Identity added, que significa que o SSH Agent salvou a sua passphrase e não precisa digitar ela novamente, toda vez que acessar um servidor remoto ou clonar um repositório do GIT.

Ah mais como eu copio a chave SSH para o git, execute o comando cat na chave.pub e cole a saída nas configurações de chave do seu git, e tome muito cuidado para não “commitar” a suas chaves no git, não adianta ter uma chave criptografada se a pessoa tiver o par! então guarde a sua com segurança!

Por hoje é só pessoal, gere a suas keys e seja feliz hehe
Abs e até a próxima!!!

comments powered by Disqus

Assine nossa Newsletter! 🐧

Se una com os assinantes de nossa Newsletter, sempre que tiver postagem nova você será notificado.