Como usar o ssh-keygen para gerar uma chave SSH

Como usar o ssh-keygen para gerar uma chave SSH

Ssh ou concha segura é um protocolo criptografado útil para proteger conexões entre o cliente e o servidor para diferentes tarefas administrativas. Ele suporta vários tipos de sistemas de autenticação. Autenticação pública baseada em chave e autenticação baseada em senha são usadas principalmente. A autenticação baseada em chave é mais segura do que a autenticação baseada em senha baseada em senha. Os pares de teclas de autenticação para o SSH são gerados pela ferramenta SSH-keygen que pode ser usada para fins diferentes, como a autenticação do host, automatizando o login, etc. Como essa ferramenta pode ser usada no Ubuntu foi mostrada neste tutorial.

Sintaxe:

A sintaxe deste comando deu abaixo. Ele suporta muitas opções para gerar pares de chave de autenticação que foram descritos posteriormente.

ssh-keygen [-q] [-b bits] [-c comentário] [-f output_keyfile] [-m formato]
[-t dsa | ecdsa | ecdsa-sk | ed25519 | ED25519-SK | rsa]
[-N new_passphrase] [-o option] [-w Provedor]

Diferentes opções de ssh-keygen:

Os propósitos de usar diferentes tipos de opções de keygen ssh são explicados abaixo.

Opção Propósito
-A Ele gera as chaves do host com o caminho do arquivo de chave padrão, a senha vazia, os bits padrão do tipo de chave e comentários.
-b bits É usado para definir o número de bits na chave que será criada.
-C Comentário É usado para definir o novo comentário.
-c É usado para solicitar a alteração do comentário dos arquivos de chave pública e privada.
-E impressão digital_hash É usado para definir o algoritmo de hash que será usado para exibir as impressões digitais.
-e É usado para ler o arquivo de chave privado ou público e imprimir no stdout.
-F HostName | [nome do host]: Port É usado para pesquisar o nome do host específico com o número da porta opcional no arquivo conhecido_hosts.
-f nome do arquivo É usado para definir o nome do arquivo do arquivo -chave.
-H É usado para hash um arquivo conhecido_hosts. Ele substituirá todos os nomes de host e endereços pelas representações de hash dentro do arquivo especificado. O conteúdo original será movido para um arquivo com o .sufixo velho.
-eu É usado para ler um arquivo de chave privado (ou público) não criptografado (ou público).
-eu É usado para imprimir o conteúdo de um ou mais certificados.
-eu É usado para mostrar a impressão digital de um arquivo de chave pública especificada.
-N new_passphrase É usado para fornecer a nova senha.
-P senha É usado para fornecer a senha antiga.
-t dsa | ecdsa | ecdsa-sk | ed25519 | ED25519-SK | RSA É usado para definir o tipo de chave que será criada.

Crie teclas usando SSH-keygen:

Você pode criar pares de chaves ssh executando o SSH-keygen com opções ou sem qualquer opção. Diferentes maneiras de criar os pares de chaves ssh mostraram nesta parte deste tutorial. Você precisa fazer login na máquina do servidor onde o OpenSSH foi instalado para criar as chaves

Gere os pares de chaves sem nenhuma opção:

O comando a seguir criará pares de chaves sem usar nenhuma opção.

$ ssh-keygen

Depois de executar o comando acima, você pode fornecer o nome do arquivo onde a chave será salva ou pressione a tecla Enter para salvar o nome do arquivo padrão. Aqui, a tecla Enter foi pressionada. Em seguida, você pode pressionar a tecla Enter Enter novamente para definir a senha vazia ou definir a senha.

Gere os pares de chave com uma única opção:

O comando a seguir gerará os pares de chave do tipo RSA mencionado no comando com a opção -t.

$ ssh -keygen -t rsa

Como o comando anterior, você pode fornecer o nome do arquivo ou usar o nome do arquivo padrão para armazenar os pares de chaves e definir a senha ou a senha vazia para a conexão SSH.

Gere os pares de chave com várias opções:

Execute o seguinte comando para gerar os pares de chaves do tipo RSA com 2000 bits e o valor do comentário, “[email protected] ”.

$ ssh -keygen -t rsa -b 2000 -c "Mailto: [email protected] "> [email protected] "

Como o comando anterior, você pode fornecer o nome do arquivo ou usar o nome do arquivo padrão para armazenar os pares de chaves e definir a senha ou a senha vazia para a conexão SSH. Se você gerou os arquivos de chave antes de executar o comando acima, ele solicitará que você substitua o arquivo -chave ou não. Se você digitar 'y', ele substituirá o arquivo gerado anteriormente com as novas chaves.

Copie a chave pública para o servidor:

Execute o seguinte comando da máquina do servidor para adicionar a chave pública à máquina do servidor. O comando copiará a chave para o servidor e a configurará para adicionar a chave ao arquivo Autorizado_keys para acessar o servidor.

$ SSH-COPY-ID -I ~//.ssh/id_rsa fahmida@fahmida-virtualbox

A saída a seguir aparecerá se a chave pública não adicionar antes da máquina do servidor.

Modifique o arquivo de configuração do servidor:

Você deve ativar algumas opções no arquivo de configuração da máquina do servidor, se desejar definir a autenticação baseada em senha e permitir o login do usuário root do servidor. O caminho do arquivo de configuração SSH do servidor é/etc/ssh/sshd_config. Abra o arquivo em qualquer editor de texto. Execute o seguinte comando para editar o arquivo no Nano Editor.

$ sudo nano/etc/ssh/sshd_config

Adicione ou modifique o arquivo com as seguintes linhas para ativar a autenticação baseada em senha e defina permissão para o login do usuário root.

PasswordAuthentication Sim
Permitrootlogina sim

Salve e feche o arquivo. Execute o seguinte comando para reiniciar o serviço SSH.

$ sudo systemctl reiniciar ssh

Faça login do cliente SSH:

Faça login na máquina cliente de onde você deseja se conectar com o servidor para verificar se a conexão SSH está funcionando. Abra o terminal e execute o seguinte comando para adicionar a identidade da máquina do servidor.

$ ssh-add

Execute o seguinte comando ssh para se conectar com a máquina do servidor da máquina cliente. A autenticação de senha e o login root foram ativados no arquivo de configuração SSH do servidor na parte anterior deste tutorial. Portanto, o usuário deve fornecer a senha raiz válida da máquina do servidor para estabelecer uma conexão SSH com sucesso.

$ ssh [email protected]

A saída semelhante a seguir aparecerá após o estabelecimento de uma conexão SSH com o servidor do cliente.

Conclusão:

O ssh-keygen usa para gerar o par de chaves ssh de diferentes maneiras foram explicadas neste tutorial. Espero que o usuário do Ubuntu gere as teclas SSH usando o SSH-keygen para estabelecer uma conexão SSH depois de ler este tutorial.