> For the complete documentation index, see [llms.txt](https://wiki.datadike.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.datadike.com/product-docs/product-guide/configuracoes/pam/personal-settings/ssh-key.md).

# 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="info" %}
**Tipo e tamanho da chave:** a geração automática cria pares **RSA** com tamanho selecionável na faixa de **1024 a 4096 bits** (recomenda-se 2048 ou superior). Também há suporte a chaves **ed25519** (ver [Cadastro utilizando chave SSH](/product-docs/product-guide/configuracoes/pam/sysadmin/accounts/logins/general-logins/cadastro-utilizando-chave-ssh.md)).
{% endhint %}

{% 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
```
