5

ここで奇妙な問題。

ssh スローで rsync を呼び出すスクリプトを実行する

「許可が拒否されました (公開鍵)。rsync: 接続が予期せず閉じられました (これまでに受信したバイト数は 0 です) [受信者]」

奇妙なことに:

  1. ssh user@host が機能するため、ssh キーはすべて正しく設定されています
  2. スクリプトによって生成されたコマンドをログに記録してターミナルに貼り付ける
  3. スクリプトから whoami を実行すると正しいユーザーが表示され、環境は process.env を介して spawn インスタンスに渡されます
  4. スクリプトから ssh user@host を実行してもエラーがスローされず、バッファが返されるため、機能しているようです
  5. スクリプトを実行すると (テスト済みのコマンドを実行するだけです)、上記のエラーがスローされます

    var spawn = require('child_process').spawn;
    spawn('rsync', [
        '-avc',
        '--delete',
        '"'+src+'"' , 
        '--link-dest="'+path.join(dest, folder_name)+'"',
        '"'+path.join(dest, 'latest/')+'"'
        ],{ 
            cwd: process.cwd(),
            env: process.env
    });
    
4

1 に答える 1

3

キーへのパスを指定してみてください

rsync -avz -e "ssh -i /home/thisuser/cron/thishost-rsync-key" remoteuser@remotehost:/remote/dir /this/dir/
于 2012-08-18T16:13:32.753 に答える