systemdサービスとしてssh-agentを起動して使用するには?


14
  1. systemdサービスとしてssh-agentを起動する方法は?ネットにはいくつかの提案がありますが、完全ではありません。

  2. ssh-agentサービスが正常に開始された場合、自動的に暗号化されていないキーを追加する方法は?おそらく、リストからキーを追加~/.ssh/.session-keysするのが良いでしょう。

  3. SSH_AUTH_SOCKその後、ログインセッションで設定する方法は?最も正しい方法は、ssh-agentサービスからsystemd-logindサービスにプッシュすることです(それが可能かどうかわからない)。単純な単純な方法は、それをに追加するだけ/etc/profileです。


ネット上の提案には何が欠けていますか?
マークストースバーグ

回答:


23

systemd ssh-agentサービスを作成するには~/.config/systemd/user/ssh-agent.service、ssh-agentがユーザー分離されているため、ファイルを作成する必要があります。

[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

に追加SSH_AUTH_SOCK DEFAULT="${XDG_RUNTIME_DIR}/ssh-agent.socket"~/.pam_environmentます。

最後に、このサービスを有効にして開始します。

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

また、7.2以降のsshバージョンを使用している場合。 echo 'AddKeysToAgent yes' >> ~/.ssh/config

これにより、sshクライアントは常に実行中のエージェントにキーを追加するように指示されるため、事前にsshを追加する必要はありません。

~/.ssh/configファイルを作成するときに、次の実行が必要になる場合があることに注意してください。

chmod 600 ~/.ssh/config または chown $USER ~/.ssh/config

そうしないと、Bad owner or permissions on ~/.ssh/configエラーが表示される場合があります。


launchdOS Xでは、Unixソケットにアクセスしたときにssh-agentを起動するように設定されます(SSH_AUTH_SOCK変数にパスが事前に入力されます...)(inetdUnixソケットなど)。これsystemdも同様に可能と思われます。(システム全体のサービスがユーザーごとのサービスのオプションであるかどうかは、興味深いかもしれません。...)
Gert van den Berg

centos7Failed to execute operation: Process org.freedesktop.systemd1 exited with status 1systemctl --user enable ssh-agent
scarba05

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.