Tutorial container docker open ssh server para acessar websites
Objetivo
Criar um container utilizando docker para prover o serviço de conexão por ssh, com o open-ssh server, para prover acesso a websites configurados no servidor. Uma forma elegante de configurar o acesso de um usuário a diversos websites que este tem acesso e de forma organizada.
Requisitos
- Docker e docker compose instalado e configurado no servidor
- Pastas com arquivos de diferentes usuários que deseja organizar o acesso
- Por exemplo: pastas de diversos websites que um webmaster tem privilégios de acesso
- Chave pública para acesso com certificado (opcional)
- Possibilidade de acesso por nome de usuário/senha: menos seguro
Passo a passo para criar e configurar um container com open ssh server
Passo 1 – Criar pasta para configuração do container
mkdir ~/docker mkdir ~/docker/openssh cd ~/docker/openssh
Caso queira criar diversos containers com o openssh, pode criar pastas seguindo o modelo openssh-1, openssh2, …
Passo 2 – Criar o arquivo de configuração
Vamos então criar nosso arquivo docker-compose.yml:
nano docker-compose.yml
E agora copie o código abaixo dentro do arquivo:
services: openssh-server: image: lscr.io/linuxserver/openssh-server:latest container_name: openssh_server # hostname: openssh_server environment: - PUID=1000 #Importante para não ter erro de permissão de escrita - PGID=1000 #Importante para não ter erro de permissão de escrita - TZ=America/Sao_Paulo - PUBLIC_KEY_FILE=/home/nomeusuario/.ssh/authorized_keys #opcional # - PUBLIC_KEY=suachavepublicaporextenso #opcional # - PUBLIC_KEY_DIR=/home/nomedousuario/apenas_chaves_publicas/ #opcional # - PUBLIC_KEY_URL=https://github.com/nomedousuario.keys #opcional - SUDO_ACCESS=false #opcional - PASSWORD_ACCESS=true #opcional - USER_NAME=nomedousuario #opcional - USER_PASSWORD=senhadousuario #opcional # - USER_PASSWORD_FILE=/home/nomedousuario/senhaemarquivo.txt #opcional # - LOG_STDOUT= #optional volumes: - /var/www/html/site1.com.br/public_html:/config/site1.com.br - /var/www/html/site2.com.br/public_html:/config/site2.com.br ports: - 2222:2222 restart: unless-stopped
Passo 3 – Iniciando o container
Para iniciar o container, basta iniciar o comando:
docker compose up -d
Passo 4 – Credenciais de acesso
A forma mais simples de acessar é utilizando o software Filezilla, por possuir interface gráfica. Mas há quem prefere acessar diretamente pelo terminal também.
Do exemplo acima, as credenciais de acesso são:
host: sftp://192.168.1.100 Username: nomedousuario Password: senhadousuario Port: 2222
Lembrar de substituir o IP acima, pelo IP do seu servidor e não o IP do container. Se conectar pelo Filezilla, é necessário informar o prefixo sftp:// para que ele entenda que está realizando uma conexão por ssh.
Para conectar pelo terminal basta executar o comando e informar a senha:
ssh nomedousuario@192.168.1.100 -p 2222
Conclusão
A criação do container do OpenSSH server é bem simples, sendo possível escolher pela autenticação por chave pública ou usuário e senha. A conexão SSH é uma forma de acessar arquivos remotos de forma mais segura que o protocolo FTP. O setup acima é bem úteil também para organizar vários website ou pastas que podem ser acessar por determinado usuário.