¿Cómo iniciar ssh-agent como servicio systemd ? Hay algunas sugerencias en la red, pero no están completas.
¿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-keys
sería bueno.¿Cómo configurar
SSH_AUTH_SOCK
una 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
.
15
Respuestas:
Para crear un servicio systemd ssh-agent, debe crear un archivo
~/.config/systemd/user/ssh-agent.service
porque ssh-agent está aislado por el usuario.Añadir
SSH_AUTH_SOCK DEFAULT="${XDG_RUNTIME_DIR}/ssh-agent.socket"
a~/.pam_environment
.Finalmente habilite e inicie este servicio.
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/config
archivo, es posible que deba ejecutar:chmod 600 ~/.ssh/config
ochown $USER ~/.ssh/config
De lo contrario, puede recibir el
Bad owner or permissions on ~/.ssh/config
error.fuente
launchd
en OS X está configurado para iniciar ssh-agent cuando se accede a un socket Unix (y laSSH_AUTH_SOCK
variable se rellena previamente con la ruta ...) (comoinetd
, pero un socket Unix). Esto parece posible consystemd
también. (Puede ser interesante ver si un servicio de todo el sistema es una opción para un servicio por usuario ...)Failed to execute operation: Process org.freedesktop.systemd1 exited with status 1
cuando corrosystemctl --user enable ssh-agent
en centos7Esto no es compatible si está utilizando centos 7 porque no admitirá la
--user
bandera desystemctl
. Consulte este informe de error de centos, la asistencia al usuario de Systemd no funciona en el momento de la entregafuente