Como gerar uma chave SSH com ssh-keygen no Linux?
Secure Shell (SSH) é um protocolo de rede criptográfico usado para operar serviços remotos com segurança. Ele é usado para operação remota de dispositivos em canais seguros usando uma arquitetura cliente-servidor que geralmente opera na Porta 22. SSH é o sucessor do Telnet. SSH usa chaves públicas e privadas para validar e autenticar usuários. ssh-keygen é usado para gerar esses pares de chaves.
Você pode aprender mais sobre SSH e Telnet aqui
Como funciona o SSH?
- O protocolo SSH precisa ter 2 pares. Uma chave pública e uma chave privada
- A chave pública é adicionada ao servidor (ou) dispositivo remoto em uma pasta especial $HOME / .ssh / authorized_keys.
- Quando o servidor envia qualquer resposta criptografada usando a chave pública, já que apenas o cliente possui a chave privada, ele só pode descriptografar a resposta.
- Após a autenticação bem-sucedida, uma sessão de shell é criada ou o comando solicitado é executado no servidor remoto.
Como funciona o SSH
SSH-KEYGEN
ssh-keygen é o utilitário usado para gerar, gerenciar e converter chaves de autenticação para SSH. O ssh-keygen vem instalado com SSH na maioria dos sistemas operacionais. O ssh-keygen é capaz de gerar uma chave usando um dos três algoritmos de assinatura digital diferentes.
- RSA
- DSA
- ECDSA
Arquivos gerados por ssh-keygen
- $HOME / .ssh / identity: Arquivo contendo a chave privada RSA ao usar o protocolo SSH versão 1.
- $HOME / .ssh / identity.pub: Arquivo contendo a chave pública RSA para autenticação quando você estiver usando a versão do protocolo SSH
- $HOME / .ssh / id_dsa: Arquivo contendo a identidade de autenticação DSA da versão 2 do protocolo do usuário.
- $HOME / .ssh / id_dsa.pub: Arquivo contendo a chave pública DSA para autenticação quando você estiver usando a versão do protocolo SSH.
- $HOME / .ssh / id_rsa: Arquivo contendo a identidade de autenticação RSA da versão 2 do protocolo do usuário. Este arquivo não deve ser lido por ninguém além do usuário.
- $HOME / .ssh / id_rsa.pub: Arquivo contendo a chave pública RSA da versão 2 do protocolo para autenticação.
Os arquivos “.pub” devem ser copiados para o arquivo $HOME / .ssh / authorized_keys do sistema remoto onde um usuário deseja efetuar login usando autenticação SSH.
Gerando pares de chaves usando ssh-keygen
Quase todas as distros Unix e Linux vêm pré-instaladas com SSH e ssh-keygen, portanto, não precisaremos instalar. Começaremos diretamente. Este processo é quase semelhante a quase todas as distros do Linux
Abra seu terminal e digite ssh-keygen
ssh-keygen
Ele pede os nomes dos pares de chaves ssh. Se você deseja inserir a senha, vá em frente e o ssh-keygen criará automaticamente suas chaves.
//Output Generating public/private rsa key pair. // enter the name for ssh key pairs Enter file in which to save the key (/home/kushwanth/.ssh/id_rsa): gfg // enter passpharse for security Enter passphrase (empty for no passphrase): Enter same passphrase again: // ssh keys generated Your identification has been saved in gfg Your public key has been saved in gfg.pub
ssh key gen criado
Uma chave pública se parece com a abaixo.
Amostra de chave pública
Esta é a chave que você precisa copiar em seu dispositivo remoto para obter uma autenticação SSH bem-sucedida.
Copiando a chave pública para o servidor remoto
Depois que o par de chaves é criado, agora precisamos copiar a chave pública para o servidor. Existem 2 maneiras de fazer isso, usando ssh-copy-id (ou) copiando-o manualmente para o servidor.
Usando ssh-copy-id
Use o comando ssh-copy-id para copiar seu arquivo de chave pública (por exemplo, $HOME / .ssh / id_rsa.pub) para sua conta de usuário no servidor remoto.
ssh-copy-id -i $HOME / .ssh / id_rsa.pub <user> @ <your-remote-host>
Copiar manualmente a chave pública
Faça login em seu servidor remoto usando a senha e crie um diretório em $HOME / .ssh. Você pode usar o comando abaixo.
ssh <usuário> @ <seu host remoto> “umask 077; test -d .ssh || mkdir .ssh ”
- ssh <usuário> @ <host> permite que você faça o login em seu servidor host remoto
- Se o diretório .ssh já estiver presente, ele definirá as permissões do diretório como 077 para permitir a permissão de leitura, gravação e execução para o proprietário do arquivo, mas proíbe a permissão de leitura, gravação e execução para todos os outros.
- Se o diretório não estiver presente, ele criará um novo.
Agora envie sua chave pública para o servidor remoto,
cat $HOME / .ssh / id_rsa.pub | ssh <user> @ <your-remote-host> “cat >> .ssh / authorized_keys”
- cat permite que você imprima o conteúdo do arquivo no terminal.
- A saída do cat é canalizada para o SSH para anexar a chave pública a um servidor remoto.
Agora você pode fazer logout e testar se pode se conectar ao servidor remoto usando o protocolo SSH.
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva