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.

Container Docker OpenSSH - conexão pelo filezilla com usuário e senha

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.

Vinicius Paes
Visão Geral sobre Privacidade (Privacy Overview)

Este site utuliza "cookies" para que possamos oferecer uma melhor experiência de usuário. As informações dos "cookies" são armazenadas em seu navegador e executam funções como reconhecê-lo quando você retorna ao nosso site e ajudar nossa equipe a entender quais seções do site você considera mais interessantes e úteis.