0

環境とタスク:perlスクリプトでそのssh接続を使用して実行する単語の後に、machine1(2003)のuser1とmachine2(HP-UX)マシンのuser2の間で(公開鍵を交換することにより)sshパスワードなしの認証を構成しましたmachine2でのsshコマンド。

問題:machine1から手動でスクリプトを実行しているときは、machine2のuser2のパスワードを要求されません。同じを、windows2003のタスクシェッドを介して実行すると、machine2のuser2のパスワードが要求されます。どんな体でも理由を知るのを手伝ってくれますか。

よろしくお願いします、kishore。

4

1 に答える 1

0

これは悪夢でした。

HOMEDRIVE および HOMEPATH 環境変数を設定する必要があることが最終的にわかりました。コマンド 'set' を使用してインタラクティブに実行しているときに環境変数を出力し、タスク スケジューラを使用して出力を比較すると、タスク スケジューラに存在しなかったのはこれら 2 つだけでした。これらを設定した後、タスク スケジューラは最終的に既知のホストを確認できます。

scp を使用して Windows マシンにファイルをコピーする場合、タスク スケジューラ経由で実行すると、別の楽しい問題に遭遇する可能性があります。何らかの理由で scp は古いフォルダーにコピーできず、ログインしているユーザーのホーム フォルダーでなければなりません。多分それはそれほど制限的ではないかもしれませんが、正直なところ、このナンセンスな6時間で終わったときまでに気にすることはできませんでした. とにかく、回避策は、最初にファイルをログインしているユーザーのホームフォルダーに scp し、その後最終的な宛先に移動することです。

これが私のバッチファイルの最終的な方法です(最終的な宛先ディレクトリ内から実行します):

set HOMEDRIVE=C:
set HOMEPATH=\Documents and Settings\loggedinuser

echo Compressing data files on server...
ssh user@host "cd /foo/bar ; gzip -fc foobar > foobar.gz"

echo Copying files from server...
scp user@host:/foo/bar/foobar.gz "%HOMEPATH%"

move "%HOMEPATH%\foobar.gz" .

これがいつか貧しい魂の助けになることを願っています。

于 2011-12-02T14:19:45.277 に答える