Jak uruchomić ssh-agent jako usługę systemową ? W sieci jest kilka sugestii, ale nie są one kompletne.
Jak dodać automatycznie niezaszyfrowane klucze, jeśli usługa ssh-agent została pomyślnie uruchomiona? Prawdopodobnie
~/.ssh/.session-keys
dobrze byłoby dodać klucze z listy .Jak ustawić
SSH_AUTH_SOCK
póź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
.
15
Odpowiedzi:
Aby utworzyć usystematyzowaną usługę ssh-agent, musisz utworzyć plik,
~/.config/systemd/user/ssh-agent.service
ponieważ ssh-agent jest odizolowany od użytkownika.Dodaj
SSH_AUTH_SOCK DEFAULT="${XDG_RUNTIME_DIR}/ssh-agent.socket"
do~/.pam_environment
.Na koniec włącz i uruchom tę usługę.
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/config
pliku może być konieczne uruchomienie:chmod 600 ~/.ssh/config
lubchown $USER ~/.ssh/config
W przeciwnym razie może pojawić się
Bad owner or permissions on ~/.ssh/config
błąd.źródło
launchd
w systemie OS X jest ustawione na uruchamianie ssh-agent po uzyskaniu dostępu do gniazda Unix (aSSH_AUTH_SOCK
zmienna jest wstępnie wypełniona ścieżką ...) (jakinetd
, ale gniazdo Unix). Wydaje się tosystemd
również możliwe . (Czy usługa ogólnosystemowa jest opcją dla usługi na użytkownika, może być interesujące zobaczyć ...)Failed to execute operation: Process org.freedesktop.systemd1 exited with status 1
kiedy uruchamiamsystemctl --user enable ssh-agent
na centos7Nie jest to obsługiwane, jeśli używasz centos 7, ponieważ nie będzie obsługiwał
--user
flagisystemctl
. Zobacz ten raport o błędach centos, Pomoc systemowa dla użytkowników jest zepsuta przy dostawieźródło