Я внимательно следил за инструкцией там:
http://www.cyberciti.biz/faq/ssh-password-less-login-with-dsa-publickey-authentication/
И затем я написал следующий script.sh на моем локальном компьютере
echo "Sync"
rsync -avz --links /home/jansiatest/.jenkins/workspace/svn_to_demo/trunk/CPS/ jansia@ps27670.dreamhost.com:/home/tasklite/test
Но когда я запускаю сценарий, набирая ./script.sh, он снова спрашивает у меня пароль на сервере.
Я не знаю точно, что мне не хватает
Проверьте права доступа к каталогу .ssh на удаленном хосте, принимающем ключ. Ключ аутентификации не будет работать, если разрешения доступны для чтения любому другому пользователю. Каталог .ssh должен быть 700, а авторизованные ключи - 600. Или drwx ------ и -rw ------- соответственно. Я забываю об этом каждый раз, когда настраиваю новый хост.
Используйте параметр rsync -e, чтобы указать сценарий, который вы пишете, который запускает ssh с параметрами, которые вы контролируете. Используйте опцию ssh -o "пакетный режим да" чтобы заблокировать запросы пароля. Теперь, если ключи не получают доступа, появится сообщение об ошибке, и ssh выйдет с кодом состояния. Убедитесь, что ваш скрипт передает этот код состояния обратно в rsync. Если ваш скрипт что-то выводит, убедитесь, что он выводит только в STDERR. Если это все еще не удается, затем диагностируйте, почему ключ (ключи) принимаются / не принимаются сервером.
Это должно сработать, если вы неправильно развернули свой ключ ssh.
В Debian / Ubuntu вы можете развернуть его с помощью этой команды:
ssh-copy-id jansia@ps27670.dreamhost.com