---
title: Chaves SSH
slug: chaves-ssh
icon: {"faIcon":"fa-solid fa-key"}
createdAt: 2024-07-16T08:09:58.404Z
---

Passo a passo para criar chaves SSH e associá-las ao usuário <font color="#910000">`deploy` </font>para acesso seguro:

## 1. Criando Chaves

- **No seu servidor Linux**, execute o comando a seguir para criar um novo par de chaves SSH:

```shell
cd
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_deploy
```

Isso criará dois arquivos no diretório <font color="#009115">`/root/.ssh`</font>:

- <font color="#006991">`id_rsa_deploy`</font>: sua chave privada.
- <font color="#006991">`id_rsa_deploy.pub`</font>: sua chave pública.
- Será solicitado uma senha pode definir ou dê enter para gerar as chaves em senha. É recomendável sempre definir uma senha para chaves SSH para uma camada adicional de segurança.

Redefina a senha do usuario deploy (Não use caracteres especiais):

```shell
passwd deploy
```

## 2. Associando a chave SSH ao usuário <font color="#e70000">Deploy</font>

- Ainda no servidor, adicione a chave pública ao arquivo <font color="#007091">`authorized_keys` </font>do usuário <font color="#910000">`deploy`</font>:

```shell
mkdir -p /home/deploy/.ssh
cat ~/.ssh/id_rsa_deploy.pub >> /home/deploy/.ssh/authorized_keys
```

- Defina as permissões corretas para o diretório <font color="#009115">`.ssh`</font> e o arquivo <font color="#007391">`authorized_keys`</font>:

```shell
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys
```

## 3. Configurar o SSH para autenticar por chave

- Edite o arquivo de configuração do SSH:

```shell
sudo nano /etc/ssh/sshd_config
```

- Certifique-se de que as seguintes linhas estejam presentes e descomentadas:

```none
Port 2222
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
PermitRootLogin no
```

- É uma boa pratica mudar a porta padrão do acesso SSH, no exemplo acima coloquei a `2222` mas pode colocar qualquer outra porta sem uso acima desse numero
- Após alterar a porta padrão do SSH de <font color="#dc0000">`22` </font>para <font color="#00871a">`2222` </font>rode o comando abaixo para liberar a nova porta e remover a antiga do firewall.

```shell
sudo ufw allow 2222/tcp
sudo ufw delete allow 22/tcp
```

- Reinicie o serviço SSH para aplicar as mudanças:

```shell
sudo systemctl restart sshd
```

Agora, o acesso SSH ao servidor está restrito à autenticação por chave e o acesso root foi desativado.

:::hint{type="danger"}
**Nota Importante:** Antes de fechar sua sessão SSH atual, abra uma nova sessão de teste para garantir que você possa se conectar com sucesso na nova porta. Se você fechar sua sessão atual e houver algum problema com a nova configuração, você pode ficar sem acesso ao servidor.
:::

## 4. Usando a Chave Privada

- Transfira a chave privada <font color="#005c91">`id_rsa_deploy` </font>do seu servidor para a sua máquina local
- Conecte-se ao servidor usando o nome de usuário <font color="#c31010">`deploy` </font>e a chave SSH gerada.

E está pronto! Agora você configurou com sucesso o acesso SSH usando autenticação por chave para o usuário <font color="#c31010">`deploy` </font>e pode acessar o servidor com o cliente SSH de sua preferencia usando a nova porta <font color="#00628d">`2222`</font>.

## 5. Usar permissões do usuario root

- Caso haja necessidade de executar algum comando como o usuario root como o **INSTALADOR DO DIGITALSAC**, acessando a vps com o usuario deploy só rodar no terminal o comando abaixo e colocar a senha definida para o usuario deploy

```shell
sudo -i
```

