Como iniciar automaticamente um contêiner lxc na conexão ssh?

3

Estou tentando configurar um sistema que cria automaticamente uma nova sandbox em um login ssh para usar como uma caixa de salto temporária no meu servidor. Então, para fazer isso, fiquei imaginando como configurar o lxc para ativar um novo shell no contêiner quando houver uma conexão ssh e, em seguida, destruir esse contêiner depois que a sessão for fechada.

Qual seria a melhor maneira de fazer isso?

EDITAR:

Obrigado a todos que colocaram a sua opinião. Eu tenho sido capaz de conceber o método para fazer a mesma configuração da seguinte forma:

/ etc / ssh / sshd_config:

match group ssh forceCommand sudo docker run --rm -t -i busybox /bin/sh

O que isso faz é forçar a sessão do usuário a ir instantaneamente para um contêiner do busybox e, em seguida, excluir as alterações ao sair. Pode-se mudar ou criar sua própria imagem e especificar isso no lugar do busybox. Embora isso esteja incluído aqui, já que a única coisa que o contêiner de busybox padrão oferece é wget e telnet, o que é bom o suficiente para a maioria das caixas de teste / jumpers OOB e essa era a meta do caso de uso com este design.

    
por Dwight Spencer 23.03.2014 / 06:44

1 resposta

5

Ok, o seu problema principal não parece ser a maneira de executar isso. Isso é relativamente fácil com ForceCommand dentro de um bloco Match de sshd_config .

Para fazer o que você quer alcançar, ou seja, um container descartável que "se autodestrói" após o uso, você pode usar lxc-start-ephemeral . Isso quer dizer que seu caso de uso já foi considerado no conjunto de ferramentas do LXC userspace. Apenas pegue: sua versão LXC precisa ser recente o suficiente.

Existe mais uma coisa. Você precisa de um contêiner que use lxc-start-ephemeral como base para o clone efêmero começar. Mais detalhes podem ser encontrados na página man do lxc-start-ephemeral .

    
por 03.05.2014 / 12:40