¿Cómo iniciar y usar ssh-agent como servicio systemd?

15
  1. ¿Cómo iniciar ssh-agent como servicio systemd ? Hay algunas sugerencias en la red, pero no están completas.

  2. ¿Cómo agregar automáticamente claves sin cifrar si el servicio ssh-agent se inició con éxito? Probablemente, agregar claves de la lista de ~/.ssh/.session-keyssería bueno.

  3. ¿Cómo configurar SSH_AUTH_SOCKuna sesión de inicio de sesión después? La forma más correcta es llevarlo del servicio ssh-agent al servicio systemd-logind (no tengo idea si alguna vez es posible). La forma ingenua es simplemente agregarlo a /etc/profile.

midenok
fuente
¿Qué falta en las sugerencias en la red?
Mark Stosberg

Respuestas:

24

Para crear un servicio systemd ssh-agent, debe crear un archivo ~/.config/systemd/user/ssh-agent.serviceporque ssh-agent está aislado por el usuario.

[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

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

Finalmente habilite e inicie este servicio.

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

Y, si está utilizando una versión ssh superior a 7.2. echo 'AddKeysToAgent yes' >> ~/.ssh/config

Esto le indicará al cliente ssh que siempre agregue la clave a un agente en ejecución, por lo que no es necesario agregar ssh de antemano.

Tenga en cuenta que cuando cree el ~/.ssh/configarchivo, es posible que deba ejecutar:

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

De lo contrario, puede recibir el Bad owner or permissions on ~/.ssh/configerror.

Abner Zhang
fuente
launchden OS X está configurado para iniciar ssh-agent cuando se accede a un socket Unix (y la SSH_AUTH_SOCKvariable se rellena previamente con la ruta ...) (como inetd, pero un socket Unix). Esto parece posible con systemdtambién. (Puede ser interesante ver si un servicio de todo el sistema es una opción para un servicio por usuario ...)
Gert van den Berg
Me sale Failed to execute operation: Process org.freedesktop.systemd1 exited with status 1cuando corro systemctl --user enable ssh-agenten centos7
scarba05