我仔细地按照那里的教程:
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/ [email protected]:/home/tasklite/test
但是,当我启动脚本键入./script.sh它不断要求我在服务器上的密码。
我不知道我错过了什么
检查接受密钥的远程主机上.ssh目录的权限。 如果权限可由任何其他用户读取,密钥authentication将不起作用。 .ssh目录应该是700,授权密钥应该是600.或者,分别是drwx ——和-rw ——-。 每次我build立一个新的主机,我都会忘记这个。
使用rsync -e选项来指定您编写的脚本,该脚本使用您控制的选项运行ssh。 使用ssh选项-o“batchmode yes”来阻止密码提示。 现在,如果密钥不能访问,将会出现一个错误消息,ssh将以状态码退出。 确保您的脚本将该状态码传递回rsync。 如果您的脚本输出任何东西,请确保它只输出到STDERR。 如果仍然失败,下一步诊断为什么服务器不接受密钥。