私は、各ユーザーの各sshセッションでssh-agent
を実行しようとしています(これらの特権でserAがあり、serBであるとしましょう)。
そのために、 this stack-overflow answer に基づいてユニットファイルを作成しました
サービスを/etc/systemd/system/run-ssh-agent.service
の下に配置しました:
[Unit]
Description=SSH key agent
[Service]
Type=forking
Environment=SSH_AUTH_SOCK=/run/ssh-agent.socket
ExecStart=/usr/bin/ssh-agent -a $SSH_AUTH_SOCK
[Install]
WantedBy=multi-user.target
AddKeysToAgent yes
を/etc/ssh/ssh_config
に追加し、export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
を/etc/bash.bashrc
に追加しました
その後、もちろん、セッションを再開しました。
問題:このアプローチはserAで機能しますが、serBでは機能しません。
デバッグ:
環境変数:SSH_AUTH_SOCKはuserAに対して正しく設定されているようです
$ echo $SSH_AUTH_SOCK
/run/user/1006/ssh-agent.socket
しかし、私が得るuserBではありません:
$ echo $SSH_AUTH_SOCK
/ssh-agent.socket
Ubuntu 16.04.3 LTS、4.4.0-112-generic、OpenSSH_7.2p2を使用しています
ヒントを事前にありがとうございます。
Ask Ubuntuへようこそ。
システム全体のユーザーユニットは、/etc/systemd/user
に配置する必要があります。
それらを/etc/systemd/system
に配置しました。これらはrootユーザーとしてのみ実行されます。