Chaves SSH

A conexão remota ao servidor sempre requer autenticação do cliente para que partes não autorizadas não possam obter acesso. O método básico de autenticação é o uso de uma senha. Mas as senhas têm uma desvantagem — elas podem ser decifradas, especialmente se o proprietário do servidor não tomou cuidado com a complexidade da senha.

Para conexões SSH a servidores Linux, recomenda-se um método alternativo — autenticação por chaves SSH. Essas chaves são um par — uma chave privada e uma chave pública. A chave privada deve ser armazenada, respectivamente, no ambiente privado do cliente, e a chave pública é enviada ao servidor e colocada em authorized_keys arquivo.

Este método de autenticação não se aplica a servidores Windows, pois a conexão RDP não possui essa funcionalidade.

O uso de chaves SSH não é um requisito do sistema da plataforma Navixy, mas é fortemente recomendado aos proprietários de servidores por razões de segurança.

Criando chaves SSH no Linux

Se sua estação de trabalho estiver usando um sistema operacional baseado em Linux, então você precisa usar o pacote openssh Pode já estar pré-instalado ou pode exigir instalação adicional. No Ubuntu e Debian é instalado com este comando:

apt -y install openssh-server

Para outras distribuições, o comando pode ser diferente.

Para começar a gerar chaves, execute este comando:

ssh-keygen

Será solicitado que informe o caminho do arquivo onde as chaves serão colocadas. Você pode deixar o local padrão (entre parênteses) pressionando Enter, ou especificar um local e nome de arquivo personalizados.

Em seguida, será solicitado que informe uma passphrase. É uma medida extra de segurança para proteger sua chave contra uso por terceiros caso ela seja comprometida. Esta etapa é opcional.

Uma vez que você tenha gerado com sucesso um par de chaves, verá uma notificação:

Com o local padrão, a chave pública é armazenada em /root/.ssh/id_rsa.pub, e a chave privada é armazenada em /root/.ssh/id_rsa.

Agora você precisa copiar a chave pública para o seu servidor, no diretório do usuário em cujo nome a conexão remota será realizada. Vamos supor que o nome de usuário seja navixy. Conecte-se ao seu servidor e edite o arquivo com qualquer editor de texto, por exemplo:

Especifique o conteúdo da sua chave pública após ssh-rsa. Você pode indicar um comentário curto após a chave para explicar sua finalidade.

Salve o arquivo.

Agora você pode se conectar ao servidor usando a chave SSH recém-criada.

Após isso, você pode desabilitar a autenticação por senha em seu servidor.

Criando chaves SSH no Windows

Se estiver usando Windows, o cliente mais comum para conectar-se a um servidor via SSH é o PuTTY. Existem também muitos clientes alternativos, mas todos basicamente servem ao mesmo propósito, então a escolha é sua.

No Windows, a geração de chaves SSH é realizada usando o utilitário PuTTYgen que acompanha o pacote de instalação do PuTTY.

Inicie o PuTTYgen a partir do menu Iniciar.

Certifique-se de que o tipo de chave RSA está selecionado e clique em Generate.

Durante o processo de geração da chave, mova o mouse várias vezes sobre a janela do aplicativo para criar valores aleatórios.

Após a conclusão da criação da chave, a chave pública será exibida no PuTTYgen, e a chave privada será armazenada na memória do aplicativo. Para salvar essas chaves, clique em Save public key e Save private key. Especifique o diretório no seu PC para armazenar os arquivos de chave.

Ao salvar a chave privada, se o campo Key passphrase não estiver preenchido, você será questionado “Are you sure you want to save this keywithout a passphrase to protect it?”. Clique em Sim ou retorne à janela anterior para especificar a passphrase.

Agora a chave pública deve ser copiada para o seu servidor dentro do arquivo authorized_keys . Ele está localizado no diretório do usuário em cujo nome a conexão remota será feita. Vamos supor que o nome de usuário seja navixy, e, neste caso, o local do arquivo será /home/navixy/.ssh/authorized_keys.

Use qualquer cliente de transferência de arquivos para trabalhar com arquivos em um servidor Linux remoto. Aqui explicaremos o processo usando WinSCP como o cliente mais popular.

Abra o arquivo authorized_keys via WinSCP para edição.

Copie o valor da chave pública da janela do PuTTYgen ou do arquivo previamente salvo. A chave deve começar com ssh-rsa. Se alguma chave já estiver salva no arquivo authorized_keys , anexe a nova chave após ela, iniciando em uma nova linha.

Salve o arquivo.

Agora você pode conectar-se ao seu servidor via PuTTY usando o arquivo de chave privada. Você precisa especificar o caminho para ele no seu PC. Para isso, selecione o caminho requerido em Connection - SSH - Auth - Credentials seção (nova versão do PuTTY) ou Connection - SSH - Auth (versão antiga), no campo Private key for authentication campo.

Informe o nome de usuário e o endereço do servidor (por exemplo [email protected]) na aba Session e conecte-se ao seu servidor. Se tudo estiver feito corretamente, a conexão será estabelecida sem a necessidade de inserir uma senha.

Chaves SSH em soluções em nuvem

Quando você implanta uma máquina virtual em serviços de nuvem como AWS, MS Azure e similares, você pode emitir uma chave SSH no momento em que cria a máquina, ou adicionar uma chave existente caso já tenha sido criada antes. Ao fazer isso, o serviço de nuvem inserirá automaticamente a chave pública nos authorzed_keys do usuário do servidor. Tudo o que você precisa fazer após o servidor ser implantado é realizar uma conexão SSH usando a chave privada.

Embora as plataformas de nuvem permitam que você crie chaves SSH, elas não armazenam a parte privada do lado delas. Uma vez baixada, a chave privada deve ser mantida em segurança, pois em caso de perda o acesso ao servidor será impossível.

Desabilitando a autenticação por senha

Depois de configurar com sucesso a autenticação por chave, não é necessário manter a autenticação por senha. Por razões de segurança, você pode desativá-la.

Conecte-se ao servidor via SSH e abra o arquivo sshd_config para edição, por exemplo com o editor Vi:

Encontre o parâmetro PasswordAuthentication no arquivo e defina-o como no:

Salve o arquivo. Reinicie o serviço sshd:

Agora você pode estabelecer a conexão remota ao seu servidor via SSH apenas usando a chave SSH adicionada anteriormente. A autenticação por senha está desabilitada.

Atualizado

Isto foi útil?