Introdução ao SSH
Tags: security, protocol, ssh, beginners
Published: 2023-10-24 03:42:55

O SSH desempenha um papel fundamental na segurança e na administração de sistemas e serviços online e por isso se tornou uma tecnologia necessária para os desenvolvedores.

Neste artigo, vamos entender os conceitos básicos que envolvem o protoloco SSH, entendendo os principais comandos e sair daqui sabendo utilizá-lo no nosso dia-a-dia!

## O que é SSH

SSH, ou Secure Shell, é um **_protocolo de comunicação que permite a conexão segura entre dois computadores_**, possibilitando a transferência de dados e a execução de comandos à distância. Em muitos aspectos, o SSH é semelhante ao HTTP, um protocolo amplamente utilizado na web. No entanto, **a principal diferença que distingue o SSH é a segurança que oferece**.

## Comunicação segura

O grande diferencial do SSH é a encriptação dos dados transmitidos entre os dois computadores. Isso significa que qualquer informação enviada ou recebida através de uma conexão SSH é codificada, tornando-a praticamente impenetrável para interceptações não autorizadas.

## Como funciona

O SSH utiliza um mecanismo de **chaves pública e privada** para autenticar e proteger as conexões. 
Esse método de autenticação garante que apenas as partes autorizadas tenham acesso aos sistemas envolvidos. 

As chaves pública e privada agem como um sistema de bloqueio e chave, onde a chave privada é mantida em segredo pelo dono e a chave pública é compartilhada com o servidor SSH.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rhbv7pgtk6n98yh9bfm0.png)

## Usos Comuns do Protocolo SSH

Uma das aplicações mais comuns do SSH é permitir o **acesso remoto a servidores e computadores**. Isso é especialmente útil em ambientes de servidores e nuvem, como por exemplo instâncias EC2 da AWS, onde nós podemos nos conectar a instâncias remotas para gerenciá-las.

Outros usos incluem: Transferência de Arquivos Segura, Túneis Seguros....

### Começando com SSH

## Listando suas chaves SSH

Quando você gera chaves SSH, elas são armazenadas por padrão na pasta `.ssh` no diretório do seu usuário. Para listar todas as chaves SSH disponíveis, você pode usar o seguinte comando no seu terminal:

**LINUX e MacOS**
```bash
ls ~/.ssh
```

**Windows**
```bash
dir ~/.ssh
```

Este comando listará os arquivos na pasta .ssh, que geralmente podem ser os seguintes tipos de arquivos:

- id_rsa: Sua chave privada RSA.
- id_rsa.pub: Sua chave pública RSA correspondente.
- id_dsa: Sua chave privada DSA (se você a gerou).
- id_dsa.pub: Sua chave pública DSA correspondente.
- Outros arquivos, dependendo de como você configurou suas chaves SSH.

## Gerando uma Chave SSH

#### 1. Instalando o Cliente SSH

O primeiro passo é garantir que você tenha um cliente SSH instalado em seu computador. Os clientes SSH estão disponíveis para Mac, Windows e Linux. Você pode encontrar links para download nos seguintes sites:

**OpenSSH para Windows:** [Instale aqui](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install) se você for usuário do Windows.

**OpenSSH para Linux:** A maioria das distribuições Linux já inclui o OpenSSH, portanto, você não precisa instalá-lo separadamente.

**OpenSSH para Mac:** O macOS também inclui o OpenSSH. Portanto, você pode prosseguir para o próximo passo.

#### 2. Gerando o Par de Chaves SSH

Com o cliente SSH instalado, abra o seu terminal e execute o seguinte comando:

```bash
ssh-keygen
```

Quando você executar este comando, o utilitário ssh-keygen iniciará o processo de geração de chaves. Ele solicitará que você indique onde deseja armazenar as chaves. Por padrão, as chaves são armazenadas na pasta `.ssh` em seu diretório de usuário.

O utilitário ssh-keygen também solicitará que você defina uma senha para proteger sua chave privada. Embora seja opcional, é altamente recomendável definir uma senha para aumentar a segurança.

**_IMPORTANTE_**: _O uso de uma senha para proteger sua chave privada é altamente recomendado, pois adiciona uma camada adicional de segurança. Mesmo com acesso ao seu computador, sem a senha não é possível utilizá-la._

## Recuperando sua chave pública

Após gerar o par de chaves, você pode recuperar a chave pública, que é a parte que você compartilhará com servidores e serviços que deseja acessar com SSH como AWS e GitHub. 

Para copiar a chave pública para sua área de transferência, execute o seguinte comando:

**No macOS e Windows:**

```bash
pbcopy < ~/.ssh/id_rsa.pub
```
**No Linux:**

```bash
cat ~/.ssh/id_rsa.pub
```

A chave privada (id_rsa) permanecerá armazenada em seu computador e nunca deve ser compartilhada com ninguém.

## That's all, folks!

Obrigada por ter lido até aqui e espero que o post tenha te ajudado a entender mais sobre o protocolo 💜