Como iniciar o ssh-agent como serviço systemd ? Existem algumas sugestões na rede, mas elas não estão completas.
Como adicionar chaves não criptografadas automaticamente se o serviço ssh-agent foi iniciado com êxito? Provavelmente, adicionar chaves da lista de
~/.ssh/.session-keys
seria bom.Como definir
SSH_AUTH_SOCK
em qualquer sessão de login depois? A maneira mais correta é transferi-lo do serviço ssh-agent para o serviço systemd-logind (não faça idéia se é possível). A maneira simples e ingênua é apenas adicioná-lo/etc/profile
.
14
Respostas:
Para criar um serviço systemd ssh-agent, é necessário criar um arquivo
~/.config/systemd/user/ssh-agent.service
porque o ssh-agent é isolado pelo usuário.Adicionar
SSH_AUTH_SOCK DEFAULT="${XDG_RUNTIME_DIR}/ssh-agent.socket"
a~/.pam_environment
.Por fim, ative e inicie este serviço.
E, se você estiver usando a versão ssh maior que 7.2.
echo 'AddKeysToAgent yes' >> ~/.ssh/config
Isso instruirá o cliente ssh a sempre adicionar a chave a um agente em execução, portanto, não há necessidade de adicioná-la previamente.
Observe que quando você cria o
~/.ssh/config
arquivo, pode ser necessário executar:chmod 600 ~/.ssh/config
ouchown $USER ~/.ssh/config
Caso contrário, você poderá receber o
Bad owner or permissions on ~/.ssh/config
erro.fonte
launchd
no OS X está definido para iniciar o ssh-agent quando um soquete Unix é acessado (e aSSH_AUTH_SOCK
variável é pré-preenchida com o caminho ...) (comoinetd
um soquete Unix). Isso parece possívelsystemd
também. (Se um serviço de todo o sistema é uma opção para um serviço por usuário pode ser interessante ver ....)Failed to execute operation: Process org.freedesktop.systemd1 exited with status 1
quando eu corrosystemctl --user enable ssh-agent
em centos7Isso não é suportado se você estiver usando o centos 7, pois ele não suportará o
--user
sinalizador desystemctl
. Consulte este relatório de erros do centos, Suporte ao usuário do Systemd está quebrado na entregafonte