リモート マシンに対して ssh を実行し、そこでコマンドを実行する bash スクリプトがあります。
ssh -nxv user@remotehost echo "hello world"
コマンドラインからコマンドを実行すると正常に動作しますが、crontab の一部として実行すると失敗します (エラーコード = 255 - SSH 接続を確立できません)。詳細:
...
Waiting for server public key.
Received server public key and host key.
Host 'remotehost' is known and matches the XXX host key.
...
Remote: Your host key cannot be verified: unknown or invalid host key.
Server refused our host key.
Trying XXX authentication with key '...'
Server refused our key.
...
ローカルで実行する場合、私はルートとして機能していますが、crontab もルートとして機能します。crontab とコマンド ラインから「id」を実行すると、まったく同じ結果が得られます。
$ id
> uid=0(root) gid=0(root) groups=0(root),...
ローカルマシンからcrondを実行しているマシンにsshします。crondマシンおよびスクリプトが接続する他のマシンにsshするためのsshキーと資格情報があります。
PS。ルートとして何かを実行することが悪い/間違っている/などと尋ねたり、文句を言ったり、コメントしたりしないでください-それはこの質問の目的ではありません。