SSH sem passwords? Sim, claro que é possível! Saiba como…
Hoje mostramos-lhe como pode passar a usar, no seu dia-a-dia, ligações remotas recorrendo ao SSH sem ter que usar passwords.
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".
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 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.
ssh-copy-id
Chaves RSA, de pelo menos: 3072 bits, idealmente 4096 bits (para um nível de segurança (AES) ~ 128 bits), 8192 bits (para um nível de segurança de (AES) ~ 192 bits) e 16384 bits (para um nível de segurança de (AES) ~256 bits)… claro: depende de sistema para sistema se tal é ou não suportado.
Chaves de Curvas Elípticas (ECC) é de evitar, porque mesmo uma chave RSA de 3072 bits deve fornecer um nível de segurança prático (contra reversão da chave pública para a chave privada) bem superior ao de uma chave de 512 bits ECC (que supostamente é o máximo normalmente disponível), em especial com a evolução da tecnologia quântica e eventuais outras tecnologias similares.
“chave de 512 bits ECC”, queria dizer: “chave de 521 bits ECC”.
No entanto a recomendação para chaves SSH de utilizadores é a de continuar a proteger as mesmas com uma passphrase para dificultar o acesso à chave privada em caso de acesso não autorizado (embora se alguém mal intencionado tiver acesso à chave privada de alguma forma, é provável que as práticas de segurança já tenham falhado em algum lado).
É possível fazê-lo em ambiente Windows?