CoreOSでroot以外のユーザーとしてタスクをスケジュールする方法

CoreOSでroot以外のユーザーとしてタスクをスケジュールする方法

リストから複数のノードにSSH経由で接続し、必要な詳細を取得するために使用するCoreOSコンピュータには、次のスクリプトがあります。

host_det=$(ssh -Ao StrictHostKeyChecking=no -o BatchMode=yes -o ConnectTimeout=5 -l $user $node "
hostname
docker ps | grep haproxy
sudo df -h |grep abcd ")

パスワードなしで設定された非rootユーザーを使用してsshを実行していますが、同じユーザーで正常に実行すると正常に動作します。 (./ssh.sh)

systemdタイマーを使用してこのスクリプトをスケジュールした後、sshはパスワードを要求し、スクリプトは失敗します。タイマーを使用するとrootユーザーとして実行されるため、sshユーザーを明示的に指定してもパスワードを要求する理由があります。 CoreOSでroot以外のユーザーのためにタイマーをスケジュールする方法はありますか?

私のタイマーとサービスファイルは次のとおりです。

cat /etc/systemd/system/ssh.timer

[Unit]
Description=Run ssh.service every morning 8:30

[Timer]
OnCalendar=*-*-* 08:30:00
Persistent=true

[Install]
WantedBy=multi-user.target




cat /etc/systemd/system/ssh.service

[Unit]
Description=Run the ssh script

[Service]

Type=oneshot
ExecStart=/usr/bin/bash -c '/home/user_name/ssh.sh 2>/tmp/date'

ベストアンサー1

あなたは定義する必要があります

User=user_name

.service ファイルで別のユーザーとして実行します。

おすすめ記事