我有一个与另一台服务器共享的SSH密钥,所以我可以在没有密码的情况下登录。执行:
rsync -avze ssh --blocking-io --delete --rsh='ssh -p2020' user@XXX.XX.XXX.XX:/foo/* /bar/;
运行良好。没有密码提示。但是bash文件中的那个命令:
#!/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
rsync -avze ssh --blocking-io --delete --rsh='ssh -p2020' user@XXX.XX.XXX.XX:/foo/* /bar/;
像这样跑:
sudo ./copyfiles.sh
给我这个:
user@XXX.XX.XXX.XX's password:
任何想法为什么?
答案 0 :(得分:3)
您似乎以root用户身份运行脚本(sudo
),但是像其他用户一样运行命令行(这只是猜测)。最有可能的是,root用户的公钥在目标计算机上不存在。
答案 1 :(得分:0)
sudo
程序可能正在创建一个没有SSH环境变量的新shell。
尝试
sudo -E ./copyfiles.sh