Jak uruchomić i używać ssh-agent jako usługi systemowej?


15
  1. Jak uruchomić ssh-agent jako usługę systemową ? W sieci jest kilka sugestii, ale nie są one kompletne.

  2. Jak dodać automatycznie niezaszyfrowane klucze, jeśli usługa ssh-agent została pomyślnie uruchomiona? Prawdopodobnie ~/.ssh/.session-keysdobrze byłoby dodać klucze z listy .

  3. Jak ustawić SSH_AUTH_SOCKpóźniej dowolną sesję logowania? Najbardziej poprawnym sposobem jest przeniesienie go z usługi ssh-agent do usługi systemd-logind (nie mam pojęcia, czy to kiedykolwiek możliwe). Prosty naiwny sposób to po prostu dodać /etc/profile.


Czego brakuje w sugestiach w sieci?
Mark Stosberg

Odpowiedzi:


25

Aby utworzyć usystematyzowaną usługę ssh-agent, musisz utworzyć plik, ~/.config/systemd/user/ssh-agent.serviceponieważ ssh-agent jest odizolowany od użytkownika.

[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

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

Na koniec włącz i uruchom tę usługę.

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

A jeśli używasz wersji ssh wyższej niż 7.2. echo 'AddKeysToAgent yes' >> ~/.ssh/config

To poinstruuje klienta ssh, aby zawsze dodawał klucz do działającego agenta, więc nie ma potrzeby wcześniejszego dodawania go.

Pamiętaj, że podczas tworzenia ~/.ssh/configpliku może być konieczne uruchomienie:

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

W przeciwnym razie może pojawić się Bad owner or permissions on ~/.ssh/configbłąd.


launchdw systemie OS X jest ustawione na uruchamianie ssh-agent po uzyskaniu dostępu do gniazda Unix (a SSH_AUTH_SOCKzmienna jest wstępnie wypełniona ścieżką ...) (jak inetd, ale gniazdo Unix). Wydaje się to systemdrównież możliwe . (Czy usługa ogólnosystemowa jest opcją dla usługi na użytkownika, może być interesujące zobaczyć ...)
Gert van den Berg

Dostaję, Failed to execute operation: Process org.freedesktop.systemd1 exited with status 1kiedy uruchamiam systemctl --user enable ssh-agentna centos7
scarba05

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.