Como configurar chaves SSH no meu servidor

Publicado em Sexta-feira, 30 de Dezembro de 2016
1245por Octávio Gonçalves

Introdução

As chaves SSH fornecem uma maneira mais segura de fazer logon num servidor privado virtual com SSH do que usando uma senha apenas. Quando uma senha pode eventualmente ser crackada com um ataque da força bruta, as chaves de SSH são quase impossíveis de decifrar pela força bruta apenas. Gerar um par de chaves fornece duas cadeias de caracteres: uma chave pública e uma privada. Pode colocar a chave pública em qualquer servidor e, em seguida, desbloqueá-lo, conectando-se a ele com um cliente que já tenha a chave privada. Quando as duas correspondem, o sistema desbloqueia sem a necessidade de uma senha. Pode aumentar a segurança ainda mais protegendo a chave privada com uma senha.

Passo #1: Criar o par de chaves RSA

O primeiro passo é criar o par de chaves na máquina do cliente (há uma boa chance de que isso seja apenas o seu computador):

ssh-keygen -t rsa

Passo #2: Armazenar as chaves e senha

Depois de inserir o comando Gen Key, receberá mais algumas perguntas:

Enter file in which to save the key (/home/demo/.ssh/id_rsa):

Pode pressionar Enter, salvando o arquivo para o usuário home (neste caso, meu exemplo de usuário é chamado demo).

Enter passphrase (empty for no passphrase):

Cabe a si decidir se deseja usar uma senha. Introduzir uma frase de acesso tem os seus benefícios: a segurança de uma chave, não importa o quão encriptada, ainda depende do facto de não ser visível para mais ninguém. Se uma chave privada protegida por senha cair na posse de utilizadores não autorizados, eles serão incapazes de fazer logon nas suas contas associadas até que eles descobram a senha, dando ao utilizador hackeado algum tempo extra. A única desvantagem, é claro, para ter uma senha é ter que digitá-la, de seguida, em cada vez que usar o par de chaves.

Todo o processo de geração de chaves é semelhante a este:

ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/home/demo/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/demo/.ssh/id_rsa.Your public key has been saved in /home/demo/.ssh/id_rsa.pub.The key fingerprint is:4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@aThe key's randomart image is:+--[ RSA 2048]----+|.oo. || .o.E||+ .o || . = = . ||= S = .|| o + = + ||. o + o .|| . o || |+-----------------+

A chave pública agora está localizada em /home/demo/.ssh/id_rsa.pub A chave privada (identificação) agora está localizada em /home/demo/.ssh/id_rsa

Passo #3: Copiar a Chave Pública

Uma vez que o par de chaves é gerado, será necessário colocar a chave pública no servidor virtual que queremos usar.

Pode copiar a chave pública no arquivo authorized_keys da nova máquina com o comando ssh-copy-id. Certifique-se que substitui o exemplo de nome de utilizador e endereço IP abaixo.

ssh-copy-id user@123.45.56.78

Como alternativa, você pode colar as chaves usando SSH:

cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >>~/.ssh/authorized_keys"

No matter which command you chose, you should see something like:

Independentemente do comando que escolheu, deverá ver algo como:

The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established.RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '12.34.56.78' (RSA) to the list of known hosts.user@12.34.56.78's password: Now try logging into the machine, with "ssh 'user@12.34.56.78'", and check in:~/.ssh/authorized_keysto make sure we haven't added extra keys that you weren't expecting.

Now you can go ahead and log into user@12.34.56.78 and you will not be prompted for a password. However, if you set a passphrase, you will be asked to enter the passphrase at that time (and whenever else you log in in the future).

Agora poderá iniciar sessão com em user@12.34.56.78 e não lhe será solicitada para uma senha. No entanto, se definir uma senha, ser-lhe-á pedido que introduza a senha nesse momento (e sempre que iniciar sessão no futuro).

Passo #4 (Opcional): Desativar a senha para login com root

Depois de ter copiado as chaves SSH para o servidor e ter assegurado que consegue iniciar sessão com as chaves SSH apenas, pode então restringir o início de sessão com root para este seja permitido apenas através de chaves SSH.

Para fazer isso, abra o arquivo de configuração SSH:

sudo nano /etc/ssh/sshd_config

Dentro desse arquivo, localize a linha que inclui PermitRootLogin e modifique-a para garantir que os utilizadores só podem iniciar sessão com sua chave SSH:

PermitRootLogin without-password

Coloque as alterações em vigor:

reload ssh

Share or save this article

slashdot