# SSH Key

O DataDike oferece flexibilidade total para configuração de acesso SSH, permitindo duas abordagens distintas:

* **Geração Automática:** O DataDike cria um par de chaves RSA automaticamente
* **Importação:** Utilize chaves SSH já existentes ou criadas externamente

Este tutorial demonstra ambos os métodos e como configurar o acesso seguro aos assets gerenciados pela plataforma.

{% hint style="warning" %}

#### Pré-requisitos

Antes de iniciar, certifique-se de que:

* [x] Você possui acesso ao DataDike com permissões adequadas
* [x] O cliente SSH está instalado em sua máquina local
* [x] Os assets de destino possuem SSH habilitado (porta 22)
* [x] Protocolo SSH está registrado nos assets alvo
  {% endhint %}

### Etapas

{% stepper %}
{% step %}

#### Passo 1: Geração da Chave SSH

O DataDike oferece duas opções para configurar chaves SSH:

**Opção A: Geração Automática (Recomendado)**

1. Navegue até: **Meu Perfil > Chaves SSH**
2. Clique no botão **"Criar"**
3. Selecione "**Criação automática de par de chaves**"
4. Preencha os campos:Nome:
   1. Identificação da chave
   2. Ativo: Marque se a chave deve estar ativa
   3. Observação: Descrição opcional para identificação
5. Clique em "**Salvar**"
6. Após a criação, o sistema disponibilizará o arquivo `.pem` para download
7. Salve o arquivo em um local seguro (recomendado: `~/.ssh/`)
8. Anote o nome do arquivo para uso posterior

{% hint style="warning" %}
**Importante:** A chave privada só pode ser baixada uma única vez após a criação. Certifique-se de fazer o download imediatamente e armazenar em local seguro.
{% endhint %}

**Opção B: Importar Chave Existente**

Se você já possui um par de chaves SSH:

1. Navegue até: **Meu Perfil > Chaves SSH**
2. Clique no botão **"Criar"**
3. Selecione **"Importar par de chaves existente"**
4. Copie o conteúdo da chave publica
5. Preencha os campos de identificação
6. Clique em **"Salvar"**
   {% endstep %}

{% step %}

#### Passo 2: Configuração de Permissões

**Linux/macOS**

Execute o comando abaixo para definir as permissões corretas:

```bash
chmod 400 seu-arquivo.pem
```

**Windows**

No PowerShell ou Command Prompt:

```powershell
icacls "seu-arquivo.pem" /inheritance:r /grant:r "%username%:R"
```

**Entendendo as Permissões**

```
chmod 400 significa:
├── 4: Leitura (read) para o proprietário
├── 0: Nenhuma permissão para o grupo  
└── 0: Nenhuma permissão para outros usuários
```

{% hint style="danger" %}
**CRÍTICO:** Permissões inadequadas resultam em rejeição automática da chave pelo servidor SSH.
{% endhint %}
{% endstep %}

{% step %}

#### Passo 3: Conexão SSH

**Comando Básico**

```bash
ssh -i seu-arquivo.pem usuario@endereco-do-servidor -p2222
```

**Exemplo Prático**

```bash
ssh -i ~/.ssh/datadike-key.pem admin@192.168.1.100 -p2222
```

**Parâmetros do Comando**

| Parâmetro              | Descrição                             |
| ---------------------- | ------------------------------------- |
| `-i`                   | Especifica o arquivo de chave privada |
| `usuario`              | Nome do usuário no sistema de destino |
| `endereco-do-servidor` | IP ou hostname do asset               |
| `-p2222`               | Porta de conexão SSH do DataDike      |
| {% endstep %}          |                                       |
| {% endstepper %}       |                                       |

***

### Requisitos dos Assets

Para que a conexão seja bem-sucedida, os assets devem atender:

#### Configurações Obrigatórias

* SSH instalado e em execução
* Protocolo SSH registrado no DataDike (porta 22)
* Firewall configurado para permitir conexões SSH
* Usuário de destino existente no sistema

#### Verificação de Conectividade

Teste a conectividade básica antes de usar a chave SSH:

```powershell
# Teste de conectividade de rede
ping endereco-do-servidor

# Teste de porta SSH
telnet endereco-do-servidor 22
```

***

### Solução de Problemas

<details>

<summary>Erro: "Permission denied (publickey)"</summary>

**Causas possíveis:**

* Permissões incorretas no arquivo `.pem`
* Chave não autorizada no servidor
* Usuário incorreto

**Solução:**

bash

```bash
# Verificar permissões
ls -la seu-arquivo.pem

# Reconfigurar permissões
chmod 400 seu-arquivo.pem
```

</details>

<details>

<summary>Erro: "Bad permissions"</summary>

**Causa:** Arquivo de chave com permissões muito abertas

**Solução:**

bash

```bash
chmod 400 seu-arquivo.pem
```

</details>

<details>

<summary>Erro: "Connection refused"</summary>

**Causas possíveis:**

* Asset não possui SSH ativo
* Porta 22 bloqueada por firewall
* Asset não registrado no DataDike

**Verificação:**

* Confirme se o SSH está ativo no asset
* Verifique as configurações de firewall
* Valide o registro do protocolo SSH no DataDike

</details>

{% hint style="success" %}

#### Boas Práticas de Segurança

**Armazenamento de Chaves**

* Mantenha chaves privadas em diretório seguro (`~/.ssh/`)
* Nunca compartilhe chaves privadas
* Faça backup seguro das chaves importantes

**Gestão de Acesso**

* Revogue chaves não utilizadas
* Monitore logs de acesso regularmente
* Use chaves específicas para diferentes ambientes
  {% endhint %}

### Configuração Avançada

Para uso frequente, configure o arquivo `~/.ssh/config`:

```
Host datadike-production
    HostName 192.168.1.100
    User admin
    Port 2222
    IdentityFile ~/.ssh/datadike-key.pem
    IdentitiesOnly yes
```

Depois, conecte simplesmente com:

```bash
ssh datadike-production
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.datadike.com/product-guide/configuracoes/pam/personal-settings/ssh-key.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
