Como configurar uma chave SSH no Linux

SSH é uma ótima tecnologia; você pode usá-lo para ocultar o tráfego VPN com ele, proteger sua conexão com sites e muito mais. O único problema é que cada vez que você tenta fazer login em uma máquina remota, você precisa digitar sua senha e isso pode ser tedioso. Se você é um desenvolvedor que deseja se conectar a muitas máquinas via SSH de uma só vez com um script Bash, ou apenas alguém que usa Secure Shell e está cansado de digitar senhas, existe uma solução: SSH sem senha. Esse processo envolve gerar uma chave SSH segura na máquina host e compartilhá-la como forma de acessar o PC. Isso permitirá que qualquer pessoa com a chave faça login, mesmo que não saiba a senha. Aqui está como fazê-lo ir.

O que são chaves SSH?

Uma chave SSH é um arquivo de identificação exclusivo usado com o Secure Shell. O objetivo dessas chaves é fornecer uma identidade exclusiva ao usuário e marcá-los como “confiáveis” ao efetuar login. Essas chaves são mais do que arquivos que comprovam a identidade de alguém. Na verdade, o SSH permite que os usuários façam login com uma chave em vez de uma senha. Ou seja, em vez de ser forçado a digitar uma senha toda vez que você faz login por SSH, você usa a chave SSH.

  Como atualizar o Fedora Linux

A chave SSH é colocada em algum lugar seguro em sua instalação do Linux e, a partir daí, você pode fazer login na máquina remota o quanto quiser sem uma senha.

Gerando chaves SSH seguras

A geração de uma chave SSH segura primeiro requer que o SSH esteja funcionando. Entenda que isso não significa necessariamente que você precisa ter um servidor SSH. Apenas que as ferramentas e tecnologias SSH básicas estão sendo executadas em seu PC Linux. Não sabe como configurar o SSH? Siga nosso guia sobre isso aqui.

Sempre gere as chaves SSH no sistema que hospeda o servidor SSH. Não tente gerá-los no servidor que não hospeda uma sessão SSH e copie-o para a máquina host SSH. Não vai funcionar.

Para iniciar o processo de geração de chaves, abra um terminal. Dentro da janela do terminal, execute:

ssh-keygen -t rsa

A execução de ssh-keygen imprimirá “Gerando par de chaves rsa pública/privada”. Isso significa que o sistema está gerando uma chave pública e uma chave privada para você usar. As chaves públicas são aquelas que qualquer um pode usar, e você deve estar bem distribuindo. Uma chave privada, por outro lado, é algo que você nunca deve compartilhar com ninguém. Daí o nome “privado”.

  Como copiar arquivos usando o comando “install” no Linux

As chaves serão salvas em /home/username/.ssh/id_rsa.

Nota: NÃO APAGUE a pasta ~/.ssh, pois ela contém suas chaves. Se você adulterar esta pasta de alguma forma e, em seguida, tentar fazer login nesta máquina remotamente, o prompt SSH falhará. Ele também irá imprimir um aviso e bloqueá-lo.

Chaves SSH na máquina remota

Agora que as chaves SSH (públicas e privadas) estão criadas e prontas para uso, você precisará copiá-las para o sistema do qual deseja fazer login. É importante que você repita esse processo em todas as máquinas nas quais planeja efetuar login por SSH. Caso contrário, aqueles que não possuem a chave precisarão fazer login usando o método de senha.

Para adicionar as chaves ao sistema remoto, siga este exemplo. Certifique-se de estar fazendo isso da máquina host por SSH.

ssh [email protected] mkdir -p .ssh

A execução deste comando ssh criará uma pasta ~/.ssh oculta no diretório inicial da máquina remota (com o usuário que foi usado para efetuar login). Esta pasta é importante, pois é onde copiaremos os arquivos de chave SSH recém-gerados.

Para copiar os arquivos de chave SSH, execute outro comando da máquina host SSH para a máquina remota que precisa das chaves:

cat .ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'

A cópia levará alguns segundos, dependendo da velocidade da rede. Quando terminar, o PC remoto terá as chaves geradas e poderá fazer login no PC host SSH sem uma senha.

  Como usar o FSearch para encontrar arquivos no Linux

Fazendo backup de chaves SSH

As chaves SSH são úteis e cada uma é única. É por isso, apoiá-los é o melhor curso de ação. O problema é que, se você salvá-lo em outro lugar, alguém pode encontrar sua chave SSH, guardá-la e usá-la para si. Portanto, a questão é: qual é uma boa maneira de fazer backup de uma chave SSH com segurança? Criptografia.

A maneira mais rápida, mais eficiente (e mais fácil) de criptografar é usar o GnuPG. A ferramenta em si é incorporada à maioria das ferramentas de criptografia já existentes no Linux e é a principal quando a criptografia de arquivos é criada. Para instalar o GnuPG, abra um terminal e procure no gerenciador de pacotes por “gpg”. O programa deve ser fácil de encontrar, mesmo em distribuições Linux muito obscuras.

Assim que o GPG estiver funcionando, inicie o processo de criptografia comprimindo seu diretório ~/.ssh no arquivo tar. Isso fará com que não haja necessidade de criptografar individualmente cada arquivo na pasta ~/.ssh.

tar -czvf ssh-stuff.tar.gz /home/username/.ssh

Quando a compactação terminar, inicie o processo de criptografia.

Nota: antes de criptografar, execute gpg no terminal para gerar um novo chaveiro.

gpg -c ssh-stuff.tar.gz

Quando o processo de criptografia for concluído, o GnuPG colocará um arquivo com o rótulo “ssh-stuff.tar.gz.gpg“. Sinta-se à vontade para excluir a versão original e desbloqueada do arquivo. Para descriptografar seu arquivo de backup, faça o seguinte:

gpg ssh-stuff.tar.gz.gpg