как заставить rsync распознавать открытый ключ ssh при запуске из скрипта (nodejs)

Странная проблема здесь.

Запуск скрипта, вызывающего rsync через ssh throws

"Permission denied (publickey). rsync: connection unexpectedly closed (0 bytes received so far) [receiver]"

странно:

  1. ssh user@host работает, поэтому все ключи ssh настроены правильно
  2. регистрация и вставка команды, созданной сценарием, в терминал работает
  3. запуск whoami из скрипта показывает правильного пользователя, а среда передается экземпляру порождения через process.env
  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
    });
    
5
задан 3on 18 August 2012 в 16:50
поделиться