terça-feira, 19 de maio de 2015

Acesso via SSH por Chave Pública entre Servidores Linux

Introdução

No post anterior ensinei a criar um par de chaves publica/privada através de utilitários no Windows, e acessar um servidor Linux.
Agora vou demonstrar como gerar o seu par de chaves em um servidor Linux, tratado neste post como Servidor Origem, como disponibiliza-la em outros servidores que você deseja acessar, tratados neste post como Servidor Destino. E por último, mas não menos importante, como importar essa chave para ser utilizada nos utilitários no Windows.

Gerar o par de chaves Pública/Privada no Servidor Origem

# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/teste/.ssh/id_rsa): <ENTER>
Enter passphrase (empty for no passphrase):
<SENHA DA CHAVE PRIVADA>
Enter same passphrase again:

<SENHA DA CHAVE PRIVADA> 
Your identification has been saved in /home/teste/.ssh/id_rsa.
Your public key has been saved in /home/teste/.ssh/id_rsa.pub.
The key fingerprint is:
fc:21:f9:9f:1e:45:9d:3f:fa:40:45:70:d6:bb:7f:b1 teste@private.localhost
The key's randomart image is:
+--[ RSA 2048]----+
|             ..+.|
|              +.o|
|              .oo|
|       . .   ....|
|        S .  ...o|
|         + ....o.|
|          o .o  +|
|           . ooEo|
|           .+  ..|
+-----------------+


Observações:
Created directory '/home/teste/.ssh'. - Aparece apenas na primeira vez que a chave é criada;
Enter passphrase (empty for no passphrase): - É a senha para sua chave privada, quanto maior a frase maior a segurança da chave. Quando fornecendo uma frase-chave, ela não é exibida na tela (nem mesmo *s aparecerão).

Copiar a Chave Pública

# cat /home/teste/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1iQX//ED02Ranp2M4GD4uQCVtDjMg5nArtUDz0Voblvz02fcnmUePu36TU85q6eHf4RlR3z/w0wNmz4b4haQRoMmIMZSi4TxYZKtyUIHipiQkCt+TpLNZm9chekLCn5pMGB4DSpL2XJC5N2Yw12w5HNKvAXZOUqUnKK+lX5G/YYM+Td0p/t+PG3E3ZjSy9kMDDpc61uGz/BjnIvrSFj+rot5l5tn2mynmfb4lhTkLE+0Ot30+q+s9IkK7J33+Y4cpEX+jMb4MvfdEyUUnjjZPgGlaXggsaKrE5ZMUhGvmIX0t/b81DRxtpI+1iu01/GHOUZ5EoSTo/EsUAViXrPV6w== teste@private.localhost


Copie esta chave para um txt temporário, pois ela será necessária no Procedimento Servidor Destino. Obs.: As informações da chave acima estão em uma única linha.

Procedimentos Servidor Destino

Criar o usuário e configurar o acesso via chave

Crie o usuário no Linux
# adduser teste

Entre no diretório do usuário
# cd /home/teste/

Crie o diretório.ssh
# mkdir .ssh

Acesse o diretório
# cd .ssh/

Crie o arquivo authorized_keys
# vi authorized_keys

Dentro desse arquivo você vai colocar o conteúdo da chave pública, aquela que você colou em um arquivo temporário. Tenha certeza de que não houve quebra de linha.

Altere as permissões do diretório
# chmod 700 .

E do arquivo
# chmod 600 authorized_keys

E por último de todo o diretório .ssh
# chown -R teste:teste /home/teste/.ssh

Testar a conexão - Partindo do Servidor Origem

$ ssh teste@servidor_destino
The authenticity of host '[servidor_destino]:22 ([192.168.100.2]:22)' can't be established.
RSA key fingerprint is 3e:99:b4:aa:c6:8a:e2:e0:e0:55:d4:f8:01:76:2a:8b.
Are you sure you want to continue connecting (yes/no)? <yes>
Warning: Permanently added '[servidor_destino]:22,[192.168.100.2]:22' (RSA) to the list of known hosts.
Enter passphrase for key '/home/teste/.ssh/id_rsa': <SENHA DA CHAVE>
Last login: Wed May 13 17:43:38 2015 from servidor_origem
 

[teste@servicor_destino ~]$ logout
Connection to servidor_destino closed.


Observações:
Essas mensagens informando que a conexão não foi possível e que vai adicionar o host ao arquivo know hosts só aparece na primeira conexão.

Converter a chave gerada no Linux para ser usada no Putty

Pode ser necessário em algum momento utilizar essa chave gerada no Linux, para acessar o Servidor Destino a partir de uma máquina Windows, para isso será necessário converter a chave, mas o processo é bem simples.
Copie a chave para o Windows e abra o Puttygen

Na tela principal clique em Load

Mude o tipo de arquivo para All Files e selecione a chave privada gerada no Linux

Digite a senha da sua chave privada

Será exibida a mensagem que a chave foi importada com sucesso clique em OK


Agora você pode visualizar a sua chave pública e salvar a chave privada


De posse das chaves devidamente importadas pelo Puttygen, basta seguir o post anterior.Você pode realizar o acesso pelo Windows normalmente, a chave importada contém o mesmo hash da chave original.

Observação:
Todas as recomendações de segurança do post anterior devem ser implementadas. 

Nenhum comentário: