Como criar uma chave SSH no Linux

8 Comentários

O SSH (Secure Shell), também conhecido como Secure Socket Shell, é um protocolo/aplicação que permite, de forma segura, aceder remotamente, através de um PC ou outro dispositivo a outros equipamentos. Para nos autenticarmos no dispositivo de destino usamos normalmente um utilizador/password mas essa autenticação pode ser simplesmente feita através de uma “chave SSH”.

Hoje mostramos-lhe como pode passar a usar, no seu dia-a-dia, ligações remotas recorrendo ao SSH sem ter que usar passwords.


SSH sem passwords? Sim, é possível!

O processo envolve gerar uma chave SSH na máquina de origem e depois partilhá-la com os computadores a partir das quais pretende efetuar o Log In para aceder à máquina. Isto irá permitir que qualquer pessoa que tem a chave faça Log in sem utilizar passwords.

 

O que é uma chave SSH?

Uma chave SSH, dito de uma forma fácil para ser igualmente fácil de perceber, é um simples ficheiro e uma identificação única que pode ser usada na Secure Shell. Acima de tudo, estas chaves são uma maneira de classificar um determinado utilizador como “Confiável” para permitir que o Log in seja efetuado de forma segura. Na verdade, SSH permite que um utilizador faça Log in com esta chave segura em vez de necessitar de uma password.

 

Gerar chaves SSH…

Para gerar uma chave SSH segura, em primeiro lugar é necessário que tenha tenha instalado o SSH (Secure Shell). Caso não tenha, execute o seguinte comando:

sudo apt-get install openssh-server

Deve gerar sempre as chaves SSH no sistema que possuí o servidor SSH.

Para iniciar o processo de criação das chaves deve abrir o terminal e executar o comando:

ssh-keygen -t rsa

Ao executar o comando ssh-keygen irá aparecer no ecrã “Generating public/private rsa key par”. Primeiro devem indicar onde vão guardar as chaves (id_rsa e id_rsa.pub). Depois basta indicar uma passphrase para que as chaves sejam geradas.

Não percebeu a parte em que aparece public/private? Bem, nós explicamos-lhe.

Isto significa que o sistema está a gerar uma parte de chaves única, que consiste numa chave pública e numa chave privada. A chave pública deve ser aquela que deve sentir-se à vontade em partilhar. Por outro lado, a chave privada é algo que deve guardar com muito cuidado e nunca partilhá-la com ninguém. Daí o nome “privada”.

De seguida deve inserir o nome do ficheiro em que quer guardar a sua chave privada.

Depois de ter feito isso deve inserir uma password para gerar o seu par de chaves. Assegure-se de que não se esquece da sequência de carateres que inseriu.

Deverão aparecer-lhe 2 novos ficheiros no seu diretório /home/

 

O que fazer com as chaves?

Agora que as chaves estão criadas e prontas a utilizar é necessário adicioná-las ao sistema em que pretende fazer Log in.

Como tal, deve utilizar este comando:

ssh username@nome-servidor-remoto mkdir -p .ssh

Ao correr este comando ssh será criado um diretório ~/.ssh no diretório home.

Em seguida, para copiar as chaves para a máquina a partir da qual pretende efetuar o processo de Log in corra o comando:

cat .ssh/id_rsa.pub | ssh username@nome-servidor-remoto 'cat >> .ssh/authorized_keys'

A cópia pode demorar alguns segundos dependendo da velocidade da sua ligação à Internet. Quando terminar, o computador para onde tentou passar as chaves já deverá ser capaz de efetuar Log in através de SSH sem necessitar da Password.

 

Faça o Backup das chaves…

Cada par de chaves SSH é único. Por isso, a melhor coisa a fazer deve ser ter um backup em algum lugar seguro. No entanto, corre sempre o risco de alguém as descobrir e começar a usá-las. Para evitar esta situação deve utilizar encriptação.

Para o ajudar com o processo siga estes dois ótimos tutoriais do Pplware:

Em primeiro lugar deve comprimir o diretório ~/.ssh e depois encriptá-lo evitando assim ter que cifrar cada um dos ficheiros um a um.

 

Conclusão

Sem dúvida, SSH é uma ferramenta extremamente útil para quem quer comunicar com outra máquina de forma segura e sem comprometimentos. Esperemos que este tutorial o venha a ajudar no seu quotidiano.

Dica: Ligue-se ao Raspberry Pi sem usar password

Partilhar:

Comentários

8

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Hugo Rodrigues
    Hugo Rodrigues

    Para enviar as chaves para o servidor pode-se usar o comando ssh-copy-id. Este comando apenas copia a chave se a mesma não existir no servidor.

    ssh-copy-id username@nome-servidor-remoto

  2. Avatar de Tiago Relvas
    Tiago Relvas

    Viva, apesar do bom artigo e ser algo “simples” de se criar para quem mexe.
    Acho que neste ponto poderiam-se focar também noutras distros usadas , por exemplo Centos 7 ( Similar a RedHat ).

    Outra maneira poderá ser esta :

    ssh-keygen -t rsa -b 2048 -C “username@maquinadestino”

    sh-copy-id username@maquinadestino

    ssh username@maquinadestino

    É apenas mais uma maneira decerteza que haverá outras ( esta fica no know_hosts na dir .ssh).

  3. Avatar de Eduardo
    Eduardo

    Excelente artigo, eu também utilizo para copiar a chave o seguinte comando
    ssh-copy-id -i /home/username/.ssh/id_rsa.pub username@nome-servidor-remoto

  4. Avatar de Rui Moreira
    Rui Moreira

    Bom artigo, mas gostava de sugerir https://linux.die.net/man/1/ssh-copy-id , visto que simplifica muito o setup.

  5. Avatar de S Pimenta
    S Pimenta

    Bom artigo… não sabia que dava também para fazer RSA no SSH… acho que vou começar a usar isso no meu router…

  6. Avatar de Gekko
    Gekko

    so faria alguns crescentos no artigo:

    1 – como desabilitar autenticação por password após a chave estar copiada para o servidor remoto. Usando a chave ssh, a password para aceder ao ssh deixa de ser necessária e é um risco de segurança no caso de bots e ataques de força bruta.

    2 – Há outras chaves para além da RSA ex: Ed25519 https://wiki.archlinux.org/index.php/SSH_keys#Choosing_the_authentication_key_type

    Mas tá fixe eu também andava a usar o ‘cat’ pa chutar a chave publica para o servidor 🙂

    1. Avatar de Ze_pombo
      Ze_pombo

      Boas,
      grande dica aqui a numero 2 do Gekko…
      Cump