Como gerar e usar chaves SSH no Linux

SSH (Secure Shell), também conhecido como Secure Sockets Shell, é um protocolo que permite uma conexão criptografada e mais segura a um servidor remoto usando um par de chaves RSA.

Esse método envolve a criação de duas chaves, uma chave pública que deve ser instalada em um servidor remoto e uma chave privada mantida em um local seguro. A criptografia e a descriptografia são feitas usando chaves separadas e não é possível obter a chave de descriptografia usando a chave de criptografia.

1. Gerando Chaves SSH no Linux

 Em um terminal, digite o comando, abaixo:

# ssh-keygen -t rsa -C “NomedaEmpresa:NomeCompleto:Data”

Note que as variáveis que se encontram entre aspas devem ser substituídas de forma adequada, como no exemplo a seguir:

# ssh-keygen -t rsa -C “BITABIT:Eduardo:18-06-2023”

Informe o arquivo no qual deseja salvar a chave privada ou aceite o local padrão, que é /home/nomedousuario/.ssh/id_rsa.

Escolha sua frase-senha (‘passphrase’), pressione Enter e digite-a novamente, para confirmar.

Uma senha é necessária toda vez que você se conectar via SSH usando a chave. Talvez você não consiga definir uma senha apenas pressionando a tecla Enter, mas estaria perdendo uma camada de segurança e isso não é recomendado. Se você escolheu o arquivo padrão, sua chave SSH privada é salva em

/home/nomedousuario/.ssh/id_rsa

Além da sua chave SSH privada, o diretório .ssh conterá agora dois arquivos:

# ls -1 .ssh/id_rsaid_rsa.pub

O arquivo id_rsa contém sua chave privada e o arquivo id_rsa.pub contém sua chave pública.

Pronto! Agora que você tem suas chaves pública e privada, sempre que quiser acessar um servidor remoto, basta copiar ou solicitar a um administrador que copie sua chave pública para esse servidor.

2. Distribuindo sua Chave Pública

ATENÇÃO! Somente distribua sua chave pública e mantenha sua chave privada em segurança.

Agora adicione a chave SSH pública gerada aos seus hosts remotos. 

Se você é o administrador do servidor remoto, você vai precisar adicionar sua chave pública ao arquivo ~/.ssh/authorized_keys dos hosts. Uma forma fácil de fazer isso é utilizando o ‘ssh-copy-id’:

# ssh-copy-id -i .ssh/id_rsa.pub usuario@servidor

No exemplo acima, utilizamos a opção -p para informar que a conexão SSH será feita através da porta 2222. Se o seu servidor usar a porta padrão 22, você não precisará adicionar essa variável.

3. Usando as Chaves SSH no Linux

Para conectar-se ao servidor remoto, digite o seguinte abaixo, lembrando que a chave SSH não substitui o uso de seu nome de usuário, mas sim deixa o processo mais seguro.

# ssh nome_de_usuário@host_remoto

Como está será sua primeira conexão usando as chaves SSH, o sistema pedirá sua confirmação:

Are you sure you want to continue connecting (yes/no)? <^>yes<~>

Pronto, você aprendeu a gerar o par de chaves SSH públicas/privadas e usar essas chaves com o servidor remoto para realizar uma conexão mais segura.

Comentários