Content-Length: 62428 | pFad | http://d.hatena.ne.jp/yuyarin/20100225/1267084795

ts Mac OS X の cron で SSH に失敗する. - yuyarinの日記

Mac OS X の cron で SSH に失敗する.

問題

cron で定期的にサーバに ssh して何かコマンドを実行したいという時があると思いますが,そのまま設定すると失敗します.公開鍵を正しく設定していても Permission denied と怒られます.

Permission denied (publickey,keyboard-interactive).
  • v オプションでデバッグすると秘密鍵が読めないということが分かりますが,シェルから実行しても問題は起きないのに cron からだと起きます.

原因と解決策

これは cron の実行時に ssh-agent の環境変数 SSH_AUTH_SOCK が設定されていないのが原因で,この値を crontab に設定してあげるとうまくいきます.

% env | grep SSH_AUTH_SOCK
SSH_AUTH_SOCK=/tmp/launch-gLshX6/Listeners
# crontab
SSH_AUTH_SOCK=/tmp/launch-gLshX6/Listeners
0       *       *       *       *       /usr/bin/ssh ...
debug1: Authentication succeeded (publickey).

うまくいきました.

SSH_AUTH_SOCKの自動設定

2010/10/11 追記

SSH_AUTH_SOCK はログインするたびに変わってしまうのでハードコーディングしてしまうと動かない.crontab から呼び出されるスクリプト内にこの値を取得して環境変数に設定するコマンドを書けば良い.

#!/bin/sh
export SSH_AUTH_SOCK=`ls /tmp/launch-*/Listeners`

参考: http://discussions.apple.com/thread.jspa?threadID=1674891









ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://d.hatena.ne.jp/yuyarin/20100225/1267084795

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy