2012-08-30 202 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