Come avviare e utilizzare ssh-agent come servizio systemd?


15
  1. Come avviare ssh-agent come servizio systemd ? Ci sono alcuni suggerimenti nella rete, ma non sono completi.

  2. Come aggiungere chiavi automaticamente non crittografate se il servizio ssh-agent è stato avviato correttamente? Probabilmente, l'aggiunta di chiavi dall'elenco di ~/.ssh/.session-keyssarebbe buona.

  3. Come impostare SSH_AUTH_SOCKin qualsiasi sessione di accesso in seguito? Il modo più corretto è spingerlo dal servizio ssh-agent al servizio systemd-logind (non ho idea se sia mai possibile). Il semplice modo ingenuo è semplicemente aggiungerlo a /etc/profile.


Cosa manca ai suggerimenti in rete?
Mark Stosberg,

Risposte:


24

Per creare un servizio systemd ssh-agent, è necessario creare un file ~/.config/systemd/user/ssh-agent.serviceperché ssh-agent è isolato dall'utente.

[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

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

Infine abilita e avvia questo servizio.

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

E, se si utilizza la versione ssh successiva alla 7.2. echo 'AddKeysToAgent yes' >> ~/.ssh/config

Questo indicherà al client ssh di aggiungere sempre la chiave a un agente in esecuzione, quindi non è necessario aggiungerlo in anticipo.

Si noti che quando si crea il ~/.ssh/configfile potrebbe essere necessario eseguire:

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

Altrimenti, potresti ricevere l' Bad owner or permissions on ~/.ssh/configerrore.


launchdsu OS X è impostato per avviare ssh-agent quando si accede a un socket Unix (e la SSH_AUTH_SOCKvariabile è prepopolata con il percorso ...) (come inetd, ma un socket Unix). Questo sembra possibile anche con systemd. (Se un servizio a livello di sistema sia un'opzione per un servizio per utente potrebbe essere interessante vedere ....)
Gert van den Berg,

Ottengo Failed to execute operation: Process org.freedesktop.systemd1 exited with status 1quando corro systemctl --user enable ssh-agentsu centos7
scarba05

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.