quarta-feira, 3 de março de 2021

Criando SSH Private Key & Public Key (Linux ↔️ Linux)

 #### Criando SSH Private Key & Public Key - Linux for Linux 🔑  ####


Chave SSH Privete Key & Public Key

Muitas vezes por uma necessidade de automação precisamos realizar autenticação sem senha a servidores Linux. O Acesso sem senha facilita o login , não tendo a necessidade de lembrar de uma senha enormemente complexa , além de ser extremamente confiável e segura devido a sua criptografia.


E para realizar o acesso sem senha é necessário gerar duas chaves: a Private Key e a Public Key


Private Key é a chave de uso exclusivo, ficando registrada somente no dispositivo que terá o acesso; 


A Public Key é a chave que será disponibilizada, a mesma ficará registrada no dispositivo que concede o acesso remoto; 


"OpenSSH é a principal ferramenta de conectividade para login remoto com o protocolo SSH. Ele criptografa todo o tráfego para eliminar escutas, sequestro de conexão e outros ataques. Além disso, o OpenSSH oferece um grande conjunto de recursos de tunelamento seguro, vários métodos de autenticação e opções de configuração sofisticadas." ( OpenSSH, https://www.openssh.com/, 2020 )


"RSA é um dos primeiros sistemas de criptografia de chave pública e é amplamente utilizado para transmissão segura de dados. Neste sistema de criptografia, a chave de encriptação é pública e é diferente da chave de decriptação que é secreta". ( Wikipédia )


Neste post será utilizado um cenário cliente-servidor, onde estaremos criando a chaves no cliente e configurando a public key no servidor. Serão dois dispositivos com Sistema operacional Linux CentOs 7. 


Ciente que os dispositivos envolvidos foram previamente configurado e atualizado.  Vamos lá !!!


########################## ETAPA 1 - CRIAÇÃO DAS CHAVES ########################

1 - Primeiramente iremos verificar se a existência do diretório .ssh e consequentemente a existência de chaves

ls ~/.ssh

OBS.: Não existindo, daremos inicio a criação, caso exista cuidado na geração de novas chave de mesmo nome e sobrescrevê-la.


2 - "Chamaremos" o comando para criação das chaves RSA: 

ssh-keygen


OBS1.: Iremos criar as Keys com 2048 bit, criação padrão, mas caso queira aumentar a segurança da criptografia basta acrescentar ao comando -b 4096 ao lado ssh-keygen;

OBS2.: Por padrão as chaves serão criadas na path /home/SeuHome/.ssh/id_rsa, bastando click "Enter", mas caso contrario podemos alterar o diretório e nome da chave, em nosso post faremos a alteração somente do nome da chave

Ex.: 

/home/acesso8/.ssh/acesso8 


3 - A  passphrase (empty for no passphrase) seria uma frase ou palavra secreta, aumentando a segurança da chave, não será nosso caso, tecle "Enter".



4 - E finalmente criamos o par de chaves que utilizaremos, como podem ver na imagem abaixo: 


5 - Verificando as chaves criadas:

ls ~/.ssh 



############ ETAPA 2 - ENVIAR A CHAVE PUBLICA AO SERVIDOR REMOTO ###########


Iremos enviar a chave através de uma ferramenta nativa de vários sistemas operacionais Linux, de modo simples. Ciente que para esse etapa é necessário que o servidor remoto esteja habilitado a autenticação via senha, posteriormente poderá desabilita-lo, e que seu usuário possua perfil no servidor remoto. 


1 - Copiando a chave publica( Necessário usuário de acesso ao servidor remoto e o Ip do servidor): 


ssh-copy-id -i ~/.ssh/<Chave> <Usuario>@<IpServidorRemoto>

Ex.:

ssh-copy-id -i ~/.ssh/acesso8 acesso8@192.168.1.202



Em seguida digite "yes"


2 - Em seguida ira solicitar a sua senha no servidor remoto, digite-a e tecle "Enter";



OBS.: Se não houver nenhuma entrada de chave public no servidor remoto será criado um arquivo chamado "authorized_keys" contendo a chave public enviada. Caso já possua entradas de chave, consequentemente o arquivo "authorized_keys"  já existira, ao realizar o processo acima a sua chave publica será adicionada abaixo das demais. 



OBS.: O "authorized_keys" é file onde adicionamos as chaves publica. A chave privada verifica neste arquivo se possui a sua chave publica. A Chave publica sempre inicia com ssh-rsa.



############ ETAPA 3 - ACESSANDO AO SERVIDOR REMOTO POR CHAVE ###########


1 - Acessando ao servidor remoto por chave


ssh -p <porta> -i ~/.ssh/<ChavePrivada> <Usuario>@<IpServidorRemoto>


Ex.: 

ssh -p 22 -i ~/.ssh/acesso8 acesso8@192.168.1.202




# ETAPA 4 - OPCIONAL - DESABILITANDO ACESSO POR SENHA AO SERVIDOR REMOTO #

1 - Acesse o arquivo de configuração do SSH

vim /etc/ssh/sshd_config

2 - Altere o PasswordAuthentication de "yes" para "no"


3 - Reinicie o serviço do SSH 

systemctl restart sshd



############### Veja Também ################


###########################################

Esse foi o procedimento de criação de chaves RSA e acesso entre dispositivos Linux. Deixe seu comentário, duvida, opinião e sugestões aqui em baixo 👇. Assim você ajuda o blog e ajuda outros profissionais a compartilhar conhecimento. 💻