Blog

SPIRIT > Blog (Page 2)

Neste artigo você aprenderá sobre os benefícios do uso das chaves SSH, como gerar as suas, distribuí-las e usá-las no Linux.

Introdução: O que são chaves SSH?

O SSH (Secure Shell), também conhecido como Secure Socket Shell, é um protocolo que permite a conexão com servidores remotos, de forma criptografada e mais segura, usando um par de chaves RSA.

Este método consiste na criação de duas chaves, uma pública que deve ser instalada nos servidores remotos, e a outra chave privada que fica salva em um local seguro. A encriptação e decriptação são feitas usando chaves separadas e não é possível conseguir a chave de decriptação usando a chave de encriptação.

1. Gerando Chaves SSH no Linux

1.1 Em um terminal, digite o comando, abaixo:

# ssh-keygen -t rsa -C “NomedaEmpresa:NomeCompleto:Data”

Note que as variáveis que se encontram entre aspas devem ser substituídas de forma adequada, como no exemplo a seguir:

# ssh-keygen -t rsa -C “SPIRIT:GleydsonMazioli:04-05-2019”

1.2 Informe o arquivo no qual deseja salvar a chave privada ou aceite o local padrão, que é /home/nomedousuario/.ssh/id_rsa.

1.3 Escolha sua frase-senha (‘passphrase’), pressione Enter e digite-a novamente, para confirmar.

A frase-senha precisará ser digitada sempre que você usar a chave para se conectar usando o SSH. Você pode não definir uma frase-senha, apenas pressionando a tecla Enter, mas você estará deixando de usar uma camada de segurança, o que não é recomendado.

Se você selecionou o arquivo padrão, sua chave privada SSH foi salva em /home/nomedousuario/.ssh/id_rsa

Além da sua chave SSH privada, o diretório .ssh conterá agora dois arquivos:

# ls -1 .ssh/
id_rsa
id_rsa.pub

O arquivo id_rsa contém sua chave privada e o arquivo id_rsa.pub contém sua chave pública.

Pronto! Agora que você já tem suas chaves públicas e privadas, sempre que você quiser acessar um servidor remoto, basta copiar ou pedir que o administrador copie sua chave pública para ele.

Você pode inclusive solicitar a criação de um certificado digital junto a Verisign, para que sua identidade análogica seja associada as chaves geradas. Saiba mais aqui.

2. Distribuindo sua Chave Pública

ATENÇÃO! Somente distribua sua chave pública e mantenha sua chave privada em segurança.

Agora adicione a chave SSH pública gerada aos seus hosts remotos. Se sua empresa tem uma subscrição de suporte com a SPIRIT, nós faremos a distribuição de sua chave pública para todos os servidores que você deve ter acesso. Basta que você a envie para o endereço suporte @ spiritlinux .com .br (não se esqueça de remover os espaços!)

2.1 Se você é o administrador do servidor remoto, você vai precisar adicionar sua chave pública ao arquivo ~/.ssh/authorized_keys dos hosts. Uma forma fácil de fazer isso é utilizando o ‘ssh-copy-id’:

ssh-copy-id -i .ssh/id_rsa.pub usuario@servidor

No exemplo acima usamos a opção -p para informar que a conexão SSH será feita pela porta 2222. Caso seu servidor use a porta padrão, 22, não é necessário acrescentar esta variável.

3. Usando as Chaves SSH no Linux

3.1 Para conectar-se ao servidor remoto, digite o seguinte abaixo, lembrando que a chave SSH não substitui o uso de seu nome de usuário, mas sim deixa o processo mais seguro.

# ssh nome_de_usuário@host_remoto

Como está será sua primeira conexão usando as chaves SSH, o sistema pedirá sua confirmação:

Are you sure you want to continue connecting (yes/no)? <^>yes<~>

4. Conclusão

Neste tutorial, você aprendeu a gerar o par de chaves SSH públicas/privadas e usar essas chaves com o servidor remoto para realizar uma conexão mais segura.

GuiaDevOps-Blog

Estamos com vagas abertas para nosso programa de estágio, com início em Junho/2019. As aplicações devem ser enviados até o dia 15/05.

Perfil Desejado

Espírito hacker: Você é um auto-didata, que busca constantemente aprender novas tecnologias e se manter atualizado sobre as inovações do mercado;

Focado em resultados: Você evita complicar as coisas e é capaz de apresentar soluções simples para problemas complexos;

Bom comunicador: Com capacidade para escrever documentações e realizar repasse de conhecimentos;

Organizado: Você é capaz de trabalhar em vários tarefas e projetos simultaneamente, respeitando prazos e horários.

Atividades
  • Suporte nível 1 na operação dos serviços de infraestrutura de TI;
  • Documentação e repasse de conhecimentos;
  • Melhoria contínua dos ambientes.
Requisitos
  • Escolaridade: Cursando a partir do 2º Semestre do ensino superior na área de Tecnologia da Informação (preferencialmente com foco em redes);
  • Idiomas: Inglês básico, para leituras de documentações técnicas;
  • Disponibilidade de horário: Segunda à Sexta, entre 09h às 15h.
Veja as vantagens de fazer parte do time da SPIRIT:
  • Bolsa-auxílio acima da média de mercado;
  • Notebook;
  • Curso de inglês;
  • Acesso ao Oreilly Safari;
  • Participação em treinamentos e conferências;
  • Certificação patrocinada.
ansible logo

Let’s put the DevOps culture into practice? In this series of tutorials Rafael Poeyes demonstrates how to deploy one of the most powerful and currently used task automation tools: Ansible.

Introduction: What is Ansible

Ansible is an IT infrastructure automation system that enables centralized deployment, configuration, and application management.

If you have to perform any administration activity more than once, it can be automated with Ansible. So instead of having to access all the servers in your park to perform a security update or install a new package, you can ask Ansible to give that apt-get upgrade to all servers at once.

Personally, I prefer Ansible to the other options available in the market because it does the work without requiring an agent to be installed on each host, as well as being much lighter than its competitors. Only Python and SSH packages are required. SSH is a standard method to access servers and is probably already installed on your Linux distribution, but you need to enable it, which some may consider a greater security risk, although Ansible works by using keys, which are more secure.

1. Installing and Configuring Ansible

You can install Ansible with the following command:

# apt-get install ansible

You need to put all the hosts you want to manage with Ansible in the /etc/ansible/hosts file.

You will need to comment all the lines. Then go to the last line of the hosts file to create a category. Let’s say you have a cluster of web servers and a database cluster. You can create two separate categories: web and db.

[ansible]
localhost ansible_host=127.0.0.1

[web]
web1 ansible_host=192.168.1.2
web2 ansible_host=192.168.2.2

[db]
db1 ansible_host=192.168.1.3
db2 ansible_host=192.168.2.3
db3 ansible_host=192.168.1.4
db4 ansible_host=192.168.2.4

If you want to make a change on all database hosts, you can use db as the selection, so only those listed under this category are affected and not other hosts, such as those in the web category.

The lines of the /etc/ansible/hosts file follows the pattern below:

NomeHost ansible_host=IP

The HostName variable is just any name to refer to its host and the IP variable refers to the host’s network address.

In the example above, we are listing 2 web servers on IP addresses 192.168. [1-2] .2, and 4 database servers on IP addresses 192.168. [1-2] [3-4].

2. Configuring the SSH Keys

Ansible works with SSH keys and, of course, also works using passwords for authentication. As we do not recommend this last method of access, it will not be cited. If your SSH key is on all Ansible-managed hosts, just use Agent Forwarding and you’ll be fine, since Ansible allows the -A option of SSH.

In this tutorial, we will use a new and unique key for Ansible and so we will need to generate it with the command:

# ssh-keygen

Now add the generated SSH key to your hosts:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@ip

3. Testing the Ansible

To verify that you can ping all hosts listed in the /etc/ansible/hosts file, type:

# ansible -m ping all

This confirms whether the hosts are online or not.

You can also run a command, such as date:

# ansible web -m command -a 'date'

In the example above, we ran the date command on all hosts in the web category.

4. Conclusion

At this point Ansible is configured and ready to use. Sounds pretty simple, right? Well, we have not yet covered Ansible’s most powerful feature: playbooks.

Next week, we’ll have a new tutorial with more details about them.