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.