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.