Estou executando um servidor Ubuntu 14.04.1 sem cabeçalho. Eu gostaria de usar um serviço de VPN comercial para proteger a conexão de internet do servidor, e meu provedor de VPN usa senhas para autenticação. Instalei openvpn no servidor e ele tem os arquivos .ca , .conf necessários para iniciar uma conexão com minha VPN.
No entanto, para iniciar essa conexão, preciso ssh in e emitir os comandos ( sudo openvpn --config <conf-file> seguido por minhas credenciais de VPN) e manter meu terminal aberto por quanto tempo eu quiser que o servidor permaneça conectado ao VPN.
Isso é impraticável em um ambiente sem cabeça. Eu tenho tentado emitir o comando remotamente de tal forma que ele possa ser executado em segundo plano enquanto eu me desconecto do servidor, mas estou enfrentando os seguintes problemas:
- Eu poderia configurar o servidor para se conectar automaticamente na inicialização, mas isso exigiria armazenar minhas credenciais de VPN em texto sem formatação, o que eu sou contra.
- Não consigo executar um único comando
ssh como root (sem me conectar ao servidor como root , mas não estou certo de que definir uma senha para root seja uma boa ideia. Opiniões? ). Ou seja, se eu enviar ssh <user>@<server> "sudo <command>" recebo
sudo: no tty present e nenhum programa askpass especificado
- Qualquer combinação dos sinalizadores
fN que eu tento passar para ssh resulta no comando indo para o segundo plano antes que eu seja solicitado pelas minhas credenciais de VPN.
Por favor, não hesite em oferecer um caminho diferente de iniciar a conexão, mesmo se você acha que essas idéias são inviáveis. No entanto, observe que o servidor não tem uma GUI instalada, portanto, qualquer ideia que não seja adequada (por exemplo, eu adoraria usar
nmcli para iniciar minha VPN, mas não posso criar uma
network-manager de conexão sem GUI, ou pelo menos eu não sei como).
(PS Tentei encontrar uma solução on-line, mas há muitos resultados lidando com a configuração de uma conexão do OpenVPN para o servidor, e se algo relevante estiver escondido entre eles, não consegui encontrar isso.)