Skip to content

RafaelQSantos-RQS/ssh-remote-server-setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SSH Remote Server Setup

Desafio: SSH Remote Server Setup - roadmap.sh

Projeto para provisionamento e configuração de servidor SSH local usando Vagrant e Ansible.

Descrição

Este projeto instancia uma máquina virtual Ubuntu 24.04 localmente e configura o serviço SSH para acesso remoto seguro com duas chaves SSH, conforme requisitos do desafio.

Tecnologias

  • Vagrant: Gerenciamento de máquinas virtuais
  • Ansible: Configuração e provisionamento
  • Ubuntu 24.04: Sistema operacional do servidor
  • Fail2ban: Proteção contra brute force attacks

Pré-requisitos

  • Vagrant
  • VirtualBox ou outro provider suportado
  • Python 3 + uv (para Ansible)

Passos para Conclusão

1. Instalar dependências

# Instalar uv (gerenciador de pacotes Python)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Instalar Ansible e ansible-lint
uv add ansible ansible-lint

2. Criar duas chaves SSH

# Criar diretório para as chaves
mkdir -p keys

# Gerar primeira chave
ssh-keygen -t ed25519 -f keys/key1 -C "key1@ssh-server"

# Gerar segunda chave
ssh-keygen -t ed25519 -f keys/key2 -C "key2@ssh-server"

3. Iniciar o servidor

vagrant up

4. Configurar SSH config (opcional)

Adicione ao ~/.ssh/config:

Host ssh-server
    HostName 192.168.56.10
    User vagrant
    IdentityFile ~/Github/ssh-remote-server-setup/keys/key1

5. Conectar ao servidor

# Usando chave 1
ssh -i keys/key1 vagrant@192.168.56.10

# Usando chave 2
ssh -i keys/key2 vagrant@192.168.56.10

# Usando alias (após configurar ~/.ssh/config)
ssh ssh-server

Segurança

  • Autenticação por senha desabilitada
  • Apenas autenticação por chave SSH permitida
  • Fail2ban configurado para bloquear após 3 tentativas falhas em 10 minutos (bloqueio de 1 hora)

Estrutura do Projeto

.
├── Vagrantfile
├── playbook.yml
├── inventory
├── README.md
├── .gitignore
├── keys/
│   ├── key1      # Chave privada 1 (não versionada)
│   ├── key1.pub  # Chave pública 1 (não versionada)
│   ├── key2      # Chave privada 2 (não versionada)
│   ├── key2.pub  # Chave pública 2 (não versionada)
│   └── .gitkeep
├── pyproject.toml
├── uv.lock
└── .venv/

About

Este projeto instancia uma máquina virtual Ubuntu 24.04 localmente e configura o serviço SSH para acesso remoto seguro com duas chaves SSH, conforme requisitos do desafio.

Resources

Stars

Watchers

Forks

Contributors