2012-08-30 73 views
-2

我正在写一个bash脚本,包括使用SSH克隆一个私人仓库, 的问题是,当我直接在终端写git clone ...,它工作正常
但在bash脚本这是也写git clone ...,但它给出错误混帐克隆SSH回购

权限被拒绝(publickey)。 致命:远程端挂机意外

的问题可能是什么什么想法?

即使该文件只包含: sudo git clone [email protected]:username/Project.git

+1

它是运行脚本相同的用户? 'ssh'将使用运行它的任何人的私钥。 – Kevin

+2

'sudo'大幅改变了事情 - 在某些情况下,你说你在使用它,在某些情况下,你说你不是;要小心一致。另外,你的当前shell是否有TTY也很重要 - 是cron调用的脚本吗?直接调用?等等。(另外,在命名'.sh'是不好的做法结束的bash脚本;见http://www.talisman.org/~erlkonig/documents/commandname-extensions-considered-harmful) –

+0

其实我只是想'回声在both' $ USER和他们是不一样的,在一个文件中的根,所以我删除从'sudo的庆典file.sh'的'sudo'它工作得很好,但我需要执行该文件为根,我可以更改脚本内的用户吗?如果有,请告诉我怎么样,谢谢 – mabdrabo

回答

0

我想出了什么问题,我只是尝试echo $ USER在两个,他们是不一样的,在文件中的是root,所以我从sudo bash file.sh中删除sudo,它工作正常

0

您没有提供脚本的任何代码,所以很难诊断。

但有些想法什么可能是你的脚本不同:不同的当前目录,不同的环境变量,缺少哈希邦线加载不同的解释,散列邦线不同的选择。

+0

同样的问题,如果sh文件只包含'git的克隆[email protected]:...' 如果文件放在任何文件夹 – mabdrabo