Eu tenho máquinas semelhantes a servidores (elas não são estações de trabalho, totalmente automatizadas) e preciso que elas possam executar um script que abre uma conexão ssh do cliente (para um servidor de terceiros, como o github), e preciso que seja executado de forma automatizada.
Eu posso fazer isso com chaves ssh privadas, mas o problema é que a máquina armazena as chaves ssh privadas em um diretório de usuário com permissões de usuário, exigindo que o script seja executado por um usuário. Eu tentei alterar as permissões das chaves ssh, mas o cliente ssh reclama que isso é inseguro.
Quer eu acabe usando chaves ssh ou não, preciso de uma maneira de abrir com segurança uma conexão ssh do cliente a partir da inicialização sem nenhum login local do sistema operacional.
Estou interessado em respostas sobre como fazer isso no Linux e/ou Windows.
No Windows, você pode usar o Agendador de Tarefas para executar um aplicativo como um determinado usuário:
Observe nas opções de segurança. Você marcaria a caixa para "Executar se o usuário está conectado ou não" e, em seguida, "Alterar usuário ou grupo" e selecionar o usuário que o configurou. Ele vai pedir a senha deles.
Não é verdade. Verifique a documentação do seu cliente SSH sobre como usar um arquivo de chave privada armazenado em local arbitrário em seu sistema de arquivos.
Para OpenSSH verifique ssh_config(5) - IdentityFile
Além disso, qualquer processo automatizado é executado como um determinado usuário em qualquer sistema operacional. Portanto, simplesmente certifique-se de que a propriedade e as permissões do arquivo de chave privada estejam definidas corretamente para esta conta de usuário/ferramenta de serviço ou como você o chama.