Como iniciar e usar o ssh-agent como serviço systemd?


14
  1. Como iniciar o ssh-agent como serviço systemd ? Existem algumas sugestões na rede, mas elas não estão completas.

  2. 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-keysseria bom.

  3. Como definir SSH_AUTH_SOCKem 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.


O que está faltando nas sugestões na rede?
Mark Stosberg

Respostas:


23

Para criar um serviço systemd ssh-agent, é necessário criar um arquivo ~/.config/systemd/user/ssh-agent.serviceporque o ssh-agent é isolado pelo usuário.

[Unit]
Description=SSH key agent

[Service]
Type=simple
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK

[Install]
WantedBy=default.target

Adicionar SSH_AUTH_SOCK DEFAULT="${XDG_RUNTIME_DIR}/ssh-agent.socket"a ~/.pam_environment.

Por fim, ative e inicie este serviço.

systemctl --user enable ssh-agent
systemctl --user start ssh-agent

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/configarquivo, pode ser necessário executar:

chmod 600 ~/.ssh/config ou chown $USER ~/.ssh/config

Caso contrário, você poderá receber o Bad owner or permissions on ~/.ssh/configerro.


launchdno OS X está definido para iniciar o ssh-agent quando um soquete Unix é acessado (e a SSH_AUTH_SOCKvariável é pré-preenchida com o caminho ...) (como inetdum soquete Unix). Isso parece possível systemdtambém. (Se um serviço de todo o sistema é uma opção para um serviço por usuário pode ser interessante ver ....)
Gert van den Berg

Eu recebo Failed to execute operation: Process org.freedesktop.systemd1 exited with status 1quando eu corro systemctl --user enable ssh-agentem centos7
scarba05

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.