O que é uma chave SSH?
Uma chave SSH, ou chave de Secure Shell, é uma forma de autenticação e criptografia usada em conexões de rede seguras.
O Secure Shell (SSH) é um protocolo utilizado para acesso remoto a sistemas e execução de comandos de forma segura, protegendo a comunicação entre o cliente e o servidor.
A chave SSH é composta por duas partes:
Chave privada: A chave privada deve ser mantida em segredo e guardada pelo usuário. Chave pública: A chave pública pode ser compartilhada livremente.
A ideia é que a chave privada só funcione com a chave pública correspondente.
Quando um usuário se conecta a um servidor SSH, ele usa sua chave privada para provar que tem a chave pública correspondente, autenticando-se de maneira segura e eliminando a necessidade de senhas.
O uso de chaves SSH é comum em ambientes de administração de servidores, sistemas remotos e integração contínua, proporcionando uma camada adicional de segurança em comparação com autenticação baseada em senha.
Posts relacionados:
- Como instalar o VMware Workstation em distribuições Linux
- Como instalar o pacote build-essential no openSuse
- Como instalar o pacote build-essential no Fedora
- Como instalar o pacote build-essential no Ubuntu
- Como instalar o Arch Linux com o Archinstall
- Como instalar a linguagem de programação Swift no Linux
- As melhores distribuições Linux com o ambiente desktop Xfce
- Lista de ícones do projeto freedesktop.org
- Como instalar os drivers do convidado no VirtualBox
- O que fazer após a instalação do Arch Linux
- As melhores distribuições Linux com KDE Plasma
- Como instalar e usar o editor de texto Nano
Tipos de chaves SSH
- ed25519: É um tipo de chave assimétrica utilizado no protocolo SSH para autenticação e criptografia. Ela faz parte de uma família de curvas elípticas conhecida como Curve25519, que foi projetada para oferecer um alto nível de segurança com eficiência computacional.
- RSA (Rivest-Shamir-Adleman): Um dos algoritmos mais antigos e amplamente utilizados. Embora ainda seja suportado, o Ed25519 é considerado mais seguro e eficiente.
- DSA (Digital Signature Algorithm): Também um algoritmo mais antigo, mas ainda suportado pelo SSH.
- ECDSA (Elliptic Curve Digital Signature Algorithm): Utiliza curvas elípticas para gerar as chaves, oferecendo um bom equilíbrio entre segurança e eficiência.
- RSA com SHA-2 (RSA usando algoritmos de hash da família SHA-2): RSA pode ser usado com algoritmos de hash mais recentes para melhorar a segurança.
- ECDSA com SHA-2 (ECDSA usando algoritmos de hash da família SHA-2): Assim como no caso do RSA, o ECDSA pode ser combinado com algoritmos de hash mais seguros.
Embora essas sejam algumas das opções mais comuns, a preferência por uma chave específica pode depender de fatores como segurança, eficiência e suporte do sistema e das implementações do SSH.
📝 O uso de
ed25519
tem ganhado popularidade devido à sua segurança e eficiência em comparação com algumas das opções mais antigas.
Como criar uma chave SSH (ed25519)
Para gerar uma chave SSH, abra o terminal e execute o comando:
ssh-keygen -t ed25519 -C "seu_email@exemplo.com"
📝 Se estiver no Microsoft Windows pode ser interessante utilizar o terminal Git BASH.
Assim que a chave for gerada devemos verificar se o gerenciador de chaves (ssh-agent
) está em execução:
eval "$(ssh-agent -s)"
Se não for retornado nenhum erro, podemos adicionar a chave SSH privada no gerenciador:
ssh-add ~/.ssh/id_ed25519
Como realizar o backup das chaves SSH
Para realizar o backup das chaves SSH copie o conteúdo contido na pasta .ssh
.
🚨 Lembre de realizar essa cópia de forma segura, uma vez que a chave privada estará sendo copia!
A pasta .ssh
fica em:
- Linux:
~/.ssh/
. Atalho é equivalente a/home/seu-usuário/.ssh
. - macOS:
~/.ssh/
. Atalho é equivalente a/Users/seu-usuário/.ssh
. - Windows:
%HOMEPATH%\.ssh\. Atalho é equivalente a
C:\Users\seu-usuário\.ssh
.
🚨 Em sistemas Linux/UNIX diretórios que começam com ponto(
.
) são ocultos por padrão.
Como restaurar as chaves SSH
Para restaurar as suas chaves SSH copie as mesmas para a pasta .ssh
.
Caso a pasta .ssh
não exista crie a mesma:
- Linux:
~/.ssh/
. Atalho é equivalente a/home/seu-usuário/.ssh
. - macOS:
~/.ssh/
. Atalho é equivalente a/Users/seu-usuário/.ssh
. - Windows:
%HOMEPATH%\.ssh\
. Atalho é equivalente aC:\Users\seu-usuário\.ssh
.
Em seguida copie as chaves para a pasta.
Definindo as permissões das chaves SSH
Após restaurar as chaves SSH é necessário definir as permissões corretas.
Definindo o proprietário das chaves:
sudo chown -R $(whoami):$(whoami) ~/.ssh
Definindo a permissão da pasta:
chmod 700 ~/.ssh
Definindo a permissão da chave privada:
chmod 600 ~/.ssh/id_ed25519
Definindo a permissão da chave publica:
chmod 644 ~/.ssh/id_ed25519.pub
Outros arquivos (caso existam):
chmod 644 ~/.ssh/authorized_keys
chmod 644 ~/.ssh/known_hosts
chmod 644 ~/.ssh/config
Assim que as permissões estiverem definidas devemos adicionar a chave privada no gerenciador de chaves.
Para verificar se o gerenciador de chaves está em execução:
eval "$(ssh-agent -s)"
Por fim adicionamos a chave SSH privada no gerenciador com o comando:
ssh-add ~/.ssh/id_ed25519