Como gerar e configurar chaves SSH Linux
- Vinicius Souza
- Linux
- 12 de junho de 2023
O acesso SSH (Secure Shell) é uma maneira segura e criptografada de se acessar um sistema Linux remotamente. A forma de acesso padrão é com usuário + senha, porém é possível configurar outras maneiras de acesso, como usuário + senha + 2FA por token, par de chaves, etc.
O acesso SSH por par de chaves utiliza uma chave criptográfica pública e privada. Onde você gera um par de chaves para você e cadastra no servidor de destino a sua chave pública em um arquivo chamado authorized_keys no diretório .ssh do usuário desejado.
A principal vantagem do acesso SSH por par de chaves é a segurança. A autenticação por par de chaves é uma opção mais segura em comparação com senhas tradicionais, pois as chaves criptográficas são extremamente difíceis de serem quebradas. Além disso, o uso de chaves elimina a necessidade de inserir senhas toda vez que você se conectar ao servidor.
Processo de logon:
Criação do par de chaves: No computador do cliente, é gerado um par de chaves criptográficas, composto por uma chave privada e uma chave pública. A chave privada é mantida em segredo no computador do cliente, enquanto a chave pública é copiada para o servidor remoto.
Configuração no servidor: A chave pública é adicionada ao arquivo authorized_keys, localizado no diretório .ssh do usuário no servidor remoto.
Solicitação de autenticação: Quando o cliente SSH tenta se conectar ao servidor, ele envia sua chave pública ao servidor durante o processo de autenticação.
Verificação da chave pública: O servidor recebe a chave pública e verifica se ela corresponde a alguma das chaves públicas armazenadas em seu arquivo authorized_keys. Se houver uma correspondência, o servidor prossegue com o processo de autenticação.
Desafio de autenticação: O servidor gera um desafio criptográfico e o envia ao cliente.
Assinatura do desafio: O cliente usa sua chave privada para assinar o desafio criptográfico recebido do servidor.
Verificação da assinatura: O servidor recebe a assinatura do cliente e usa a chave pública correspondente para verificar a autenticidade da assinatura. Se a assinatura for válida, o servidor autentica o cliente com sucesso e concede acesso.
Como gerar o par de chaves:
1- Gere o par de chaves
Primeiramente, para gerar o par de chaves, utilize o comando abaixo:
ssh-keygen -t rsa -b 2048
Este comando usa a criptografia RSA e gera um par de chaves com tamanho de 2048 bits. Você pode ajustar o tamanho da chave de acordo com suas necessidades de segurança, por exemplo utilizar 4096.
Neste momento
Você pode especificar o local para salvar a chave. Por padrão, ele será salvo na pasta ~/.ssh/
com os nomes id_rsa
(chave privada) e id_rsa.pub
(chave pública). No meu exemplo do print eu mantive o diretório padrão, mas alterei o nome deixando como id_rsa_post
2- Permita no servidor que deseja acessar o acesso com a chave gerada. Para isso acesse-o, entre no arquivo .authorized_keys no usuário que deseja permitir o acesso e coloque a chave PÚBLICA gerada, arquivo .pub:
No print acima eu entrei no diretório com o comando cd, printei o diretório que estava com o comando pwd, listei o diretório com o comando ls, editei o arquivo authorized_keys com o comando vim e depois printei o conteúdo com o comando cat.
3- Teste o acesso
Por fim, utilize o comando abaixo para testar o acesso:
ssh username@servidor
Por fim, agradecemos a leitura e esperamos que este post tenha te ajudado de alguma maneira! Caso tenha alguma dúvida, entre em contato conosco pelo Telegram , Facebook ou Instagram ! Veja mais posts no IronLinux !