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.
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.
Não compartilhe chaves privadas com ninguém em quem você não confia. Se precisar conceder acesso ao seu servidor a terceiros, não é necessário compartilhar sua própria chave. Em vez disso, você pode solicitar a chave pública deles e adicioná-la temporariamente ao seu servidor, removendo-a assim que o trabalho for concluído.
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-serverPara outras distribuições, o comando pode ser diferente.
Para começar a gerar chaves, execute este comando:
ssh-keygenSerá 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.
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?