人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【Free BSD】

http://q.hatena.ne.jp/1148019523
の続きです。


BSDからCentOSに接続させて、cronでバックアップさせるため、
SSHの認証を自動化させたいと考えています。

以下のファイルを作成し、パーミッションを755にしました。
これを、手動で打つと、成功します。

----------
スクリプト remote_backup.sh
-----
#!/bin/csh
cd /example_path
eval `ssh-agent`
ssh-add /example_path/id_rsa
sftp user@example.com:/example_backuppath/backup.zip
----------
※これを、/example_path/remote_backup.shすると、成功します。


しかし、cronで実行させると、以下のエラーメッセージを吐き出して、失敗します。

----------
SSH_AUTH_SOCK=/tmp/ssh-nDZa4NwX5p/agent.70368: Command not found.
export: Command not found.
SSH_AGENT_PID=70369: Command not found.
export: Command not found.
Agent pid 70369
Could not open a connection to your authentication agent.
Connecting to example.com...
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-with-mic,password).
Connection closed
----------

原因と解決方法をご教授ください。

●質問者: PEPOTA
●カテゴリ:コンピュータ インターネット
✍キーワード:ADD Again BSD CD CentOS
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● tadashi0805
●60ポイント ベストアンサー

手動でコマンドを打った時のユーザーと、cron実行ユーザーは同じでしょうか?

また、手動実行のユーザーのシェルは、csh系でしょうか?

ある環境で、bashでログイン状態でcshを起動し、ssh-agentを動かすと、結果はcshコマンド体系でなくsh系(exportとか)になりました。

cronは、shを介してコマンドを起動するので、その環境変数などが影響していると思います。

◎質問者からの返答

> 手動でコマンドを打った時のユーザーと、

> cron実行ユーザーは同じでしょうか?

ユーザーは同じです。

> また、手動実行のユーザーのシェルは、

> csh系でしょうか?

前回質問したときに、

> 「setenv: not found」と出ているということは、

> シェルがBSH系なのではないですか?

> #!/bin/csh

> をシェルの一行目に加えて、cshに実行させるか

と回答いただいたので、そのとおりやると、

手動での実行は、うまくいきました。

> cronは、shを介してコマンドを起動するので、

> その環境変数などが影響していると思います。

なるほど。

cronは、shを介してという回答を理解した後、

前回の回答をもう一度見直しました。

そして、ssh-agent -sとして、実行させたら、

うまく成功しました。

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ